我有一个特定于页面的JavaScript代码,可以加载该页面。问题是,它取决于jQuery。我按照建议将script(src='/js/lib/jquery.js')
放在 body 的末尾。
使用这种方法,我得到Can't find variable: $
,因为我试图在加载jQuery之前执行依赖于jQuery的特定于页面的JavaScript。
有没有办法在不将script(src='/js/lib/jquery.js')
移到 head 部分的情况下完成这项工作?
我甚至试过这样做,但我仍然得到Can't find variable: $
:
// layout.jade
script(src='/js/lib/jquery.js')
block scripts
// login.jade
block scripts
script(type='text/javascript')
$('form').validate();
修改: TJ Hollowaychuck 在此处发布了类似问题的链接,但这些网址已不再有效:Best practices for JavaScript in Jade templates
答案 0 :(得分:1)
以下是TJ指向的更新网址:
https://github.com/visionmedia/express/blob/master/examples/jade/views/users/index.jade https://github.com/visionmedia/express/blob/master/examples/jade/index.js#L34
但是,我相信你真正的问题是客户端,而不是服务器,你想在其中包装你的jQuery:
$(document).ready(function() {
// put all your jQuery goodness in here.
});
答案 1 :(得分:0)
这是我的layout.jade
的一部分doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
block content
include scripts
block scripts
我包含一个scripts.jade
,其中包含我的常用脚本(如jQuery和配置位),然后是单个页面内定义的所有脚本,只需一个简单的
block scripts
script.
alert("Hello!");