1

jQuery(document).ready(function($){});是一种保护 $ 不引起错误的已知且很好的方法。

我很好奇的是是否jQuery(window).load(function($){});会以同样的方式工作?

基本上,我现在拥有的是:

jQuery(document).ready(function($){

    $(window).load(function(){
       // ...
    }); 

});

这对我来说似乎没有必要,关于简化这个的任何想法?我需要将 jQuery 正确映射到 $ (或任何正确的术语)的安全性,但时间与window.load()

4

3 回答 3

10

我更喜欢这个...

(function($){

    $(window).load(function(){
        //everything is loaded (images, scripts, etc.)
    });

    // and/or

    $(document).ready(function(){
        // the dom is in place, but everything is not necessarily loaded
    });

})(jQuery);

注意:这仅在此脚本之前包含 jQuery 时才有效。我从未遇到过以这种方式未定义 jQuery 的任何问题。此外,您将永远不会遇到 $ 未定义的问题,因为您将它传递给您的匿名函数。

于 2012-05-21T21:57:05.323 回答
9

你可以这样做:

(function($) {

    $(window).load(function(){
       // ...
    }); 

})(jQuery);

匿名函数将立即执行,而不是像问题中的代码那样等待 DOM 就绪。函数内$将是一个引用,jQuery因此不会与$匿名函数之外定义的任何其他内容发生冲突。

于 2012-05-21T21:54:56.307 回答
1

您可以创建一个本地参数:

(function($) {
    $(...)
})(jQuery);

此代码使用名为 的参数执行匿名函数,并作为参数值$传递。jQuery

于 2012-05-21T21:55:13.200 回答