我根本不认为它可能,但我只是想知道,因为我的朋友在他的页面上有这个:
<html>
<head></head>
<body>
<script>
$(function(){
// ...
});
</script>
<div><span>html stuff</span></div>
<script src="jquery-1.7.js"></script>
</body>
</html>
所以我只是想知道,这是有效的吗? jQuery是否会使用$(function(){});
块并在完成加载后使其工作?
答案 0 :(得分:12)
不,它不会像您的朋友那样工作,因为$
此时将undefined
,因此使用参数$
调用函数function(){ }
将导致一个javascript错误,指出$
未定义。您必须先加载jQuery,然后再尝试使用它。
你的朋友可能会因为$
很特别而感到困惑,但$
是一个与其他人一样的名字。即:
function jQuery(){
// do stuff
}
和
function $(){
// do stuff
}
会做同样的事情。将这些定义放在外部文件中不会使它们在加载之前可以调用。
Tangental注意:在jQuery加载之前编写最终将使用jQuery的代码并不是绝对不可能的,但是你会把你的代码放在只在jQuery加载后调用的代码中。我不知道这样做的任何jQuery惯例,因为用这个库做这个并不常见,但Facebook这样做是这样的:https://developers.facebook.com/docs/reference/javascript/我不认为你的朋友应该这样做直到他更熟悉JavaScript。