jQuery 的窗口加载包装器

Window load wrapper for jQuery

本文关键字:包装 加载 窗口 jQuery      更新时间:2023-09-26

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

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

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

jQuery(document).ready(function($){
    $(window).load(function(){
       // ...
    }); 
});

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

我更喜欢这个...

(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的任何问题。此外,你永远不会遇到 $ 未定义的问题,因为你正在将它传递到你的匿名函数中。

你可以这样做:

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

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

您可以创建本地参数:

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

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