用于jQuery的窗口加载包装器

ggw*_*icz 1 javascript jquery dom

jQuery(document).ready(function($){}); 是保护$不会导致错误的已知且很好的方法.

我很好奇的是,如果jQuery(window).load(function($){});能以同样的方式工作吗?

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

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

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

});
Run Code Online (Sandbox Code Playgroud)

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

nnn*_*nnn 9

你可以这样做:

(function($) {

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

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

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


lbs*_*str 9

我更喜欢这个......

(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);
Run Code Online (Sandbox Code Playgroud)

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