立即调用函数Jquery

时间:2015-12-04 02:50:19

标签: jquery

我有以下代码

(function () {
    $(function () {
        JaPost.fixedHeight = $('.header').outerHeight();
    });
})();

我是否应该在一个立即调用的函数中嵌入jquery文件就绪$(function()?这是习惯做法吗?还是没有必要?

我还有以下代码

(function () {
    // Javascript that needs to be run regardless of whether the document is ready 

    $(function () {
        Javascript run when the document is ready
    });
})();

我们如何处理立即调用的函数和JQuery?

1 个答案:

答案 0 :(得分:1)

您不必将DOM准备好$(function () {包装到IIFE中。

此外,要确保其他库不会弄乱$命名空间,您可以:

jQuery(function( $ ){  // DOM ready and $ alias "secured"
   $("p").hide();
});

所以不需要,但可以将您的jQuery DOM打包成IIFE,如:

(jQuery(function( $ ){  // DOM ready and $ alias "secured"
   $("p").hide();
})());

如果您的其他JS代码的变量名称可能会与其他未知代码发生冲突,那么将您提供的所有内容包装到IIFE 中是一个好主意:

// OTHER JS CODE
var arr = "Arrrrrgh!"   // <<< notice the missing ";"

;(function () { // IIFE with leading ; to prevent errors (fn execu.) on missing ;

    var arr = [1, 2];

    $(function () {       // DOM ready
        $("p").hide();    // Cool we're hidden now
        console.log(arr); // [1, 2]
    });

}());

console.log(arr); // "Arrrrrgh!"