要确保$
始终引用jQuery
,我会采用以下格式进行编码:
方法#1
(function($) {
// Use $ here
})(jQuery);
根据我的理解,我们立即调用我们创建的函数,并将jQuery
传递给它并在$
中捕获它,以便$
始终引用jQuery
}。最安全的方式是,jQuery插件以这种方式编码。
现在,我看到一些开发人员使用以下格式进行编码,这似乎工作得很好但是想确认它是否正确&安全,因为我不明白它是如何工作的。
方法#2
jQuery(document).ready(function($) {
// Use $ here
});
因此,在这个方法中,直接使用jQuery
来调用文档就绪函数,这是正常的,但然后将$传递给它,现在我们无法确定它将引用jQuery只是,对吗?就像在页面上的jQuery之后加载Prototype一样,然后这个$
将引用原型而不是jQuery。
因此,简而言之,两种方法都安全吗?如果是的话,如何以及哪一个更好?
答案 0 :(得分:2)
两者都是安全的;传递给ready
的函数的jQuery will pass itself as the argument。
它们都适用于不同的事物。当您希望代码立即执行而不是等待文档准备好时,第一个更合适。当您想要在文档准备好时执行代码时,后者更合适。
答案 1 :(得分:2)
这两种方法都是安全的。如果您希望代码在DOM准备就绪后立即执行,请使用后者;如果您想立即运行代码,请使用第一种方法。
您可能希望将其组合起来:
(function($) {
// code that runs immediately
$(document).ready(function() {
// code that runs when the DOM is ready
});
})(jQuery);