1

为了确保$始终引用jQuery,我以这种格式编码:

方法#1

(function($) { // Use $ here })(jQuery);

根据我的理解,我们创建的函数会被立即调用,我们将传递jQuery给它并捕获它,$因此我们$将始终引用jQuery. 最安全的方式,jQuery 插件是这样编码的。

现在,我看到一些开发人员使用以下格式进行编码,这似乎工作得很好,但想确认它是否正确和安全,因为我不明白它是如何正常工作的。

方法#2

jQuery(document).ready(function($) { // Use $ here });​

所以,在这个方法中,直接使用jQuerywhich 调用 document ready 函数是可以的,但是 $ 被传递给它,现在我们无法确定它只会引用 jQuery,对吗?就像 Prototype 是在页面上的 jQuery 之后加载的,那么这$将引用原型而不是其中的 jQuery。

那么,简而言之,这两种方法都安全吗?如果是,如何以及哪个更好?

4

2 回答 2

2

两者都是安全的;jQuery会将自己作为参数传递给传递给ready.

它们都适用于不同的事物。当您希望代码立即执行而不是等待文档准备好时,第一个更合适。当您想要在文档准备好时执行代码时,后者更合适。

于 2012-09-09T21:15:39.077 回答
2

两种方法都是安全的。如果您希望代码在 DOM 准备好后立即执行,请使用后者,如果您想立即运行,请使用第一种方法。

你可能想把它结合起来:

(function($) {
    // code that runs immediately

    $(document).ready(function() {
        // code that runs when the DOM is ready
    });
})(jQuery);
于 2012-09-09T21:15:39.290 回答