2012-08-31 154 views
4

最近发现head.js图书馆和男孩我很满意,尽管我仍然对一件事感到困惑。

从headjs.com:

的“DOM准备”的事件,如$(文件)。就绪()当到达脚本已经被解雇。如果加载的脚本依赖于该事件,请确保您的库可以处理该事件。 jQuery 1.4+的作品。

考虑到这一点,什么是建立一个使用jQuery的,如果代码中的$(document)。就绪()取决于装载head.js外部脚本的网页的最佳方式?

我们能不能一起丢失$(document).ready()调用,并且仍然成功设置了事件监听器等依赖于文档准备就绪的事情?例如:

head.js("script1.js", "script2.js", "script3.js", function() { 
    $('#button').click(function(event) { 
     alert("clicked"); 
    }); 
}); 

或者我们想要在函数中包装$(document).ready()吗?

只是想知道最好的做法是确保一切准备就绪,按时到达。

回答

4

无论哪种方式都很好。如果DOM已经完全初始化,则传递给ready()的处理程序会立即调用。

对于性能增益,你可能需要删除的ready处理程序,并直接包括代码,除非你是依靠像jQuery的$物的副作用被传递给处理程序。

+0

那么然后head.ready()在DOM准备好像$(document).ready()之后等待执行,还是在脚本加载后执行? – dougmacklin

+1

@Dougie,正如你引用的文档所说的那样,“当脚本到达时,已经触发了$(document).ready()等”DOM准备好“事件。所以'head.js()'在这个上下文中的行为完全像'ready()'。 (我怀疑'head.js()'在注入脚本之前等待DOM准备就绪。) –

+0

所以你说的答案就在我鼻子下面吗? ;) – dougmacklin

相关问题