javascript page 我該如何初始化jQuery?




jquery innerhtml (4)

第一個示例在構建DOM樹時運行該函數。 第二個示例立即運行該功能。

如果你仔細觀察,在第二個例子中,在函數聲明之後有兩個括號(在這種特殊情況下,你傳入全局jQuery像作為參數以避免衝突),從而立即調用函數

正確使用的功能取決於您希望函數運行的時間。 如果你想在DOMReady上運行一個函數( ready事件),你可以像你提到的那樣使用$( document ).ready或者簡寫$( function() {...} )

否則,如果要立即運行函數並具有匿名函數作用域,請使用第二個示例。

我見過這個(我也在使用它):

$(document).ready(function(){
   // do jQuery
})

而這(我最近嘗試過):

(function(){
   // do jQuery
})(jQuery)

兩者都很好。

兩者有什麼不同(除了看起來如何)?

哪一個更合適?


您顯示的第二個示例是自執行匿名函數。 您使用的每個單獨的JS文件都可能從使用它中受益。 它提供了一個私有作用域,其中您使用var關鍵字聲明的所有內容僅保留在該作用域內:

(function($){
   var special = "nice!";
})(jQuery);

alert(special); // would be undefined

第一個示例是$(document).ready簡寫,它可以在操作DOM時觸發。

關於它的一些很酷的事情。 首先,您可以在自執行功能中使用它:

(function($){
   $(function(){
      // Run on DOM ready
   });

   // Run right away
})(jQuery);

其次,如果您需要的只是文檔中的幾行,您可以將私有範圍和DOM就緒函數組合在一起,如下所示:

jQuery(function($){
   // $ = jQuery regardless of what it means
   // outside this DOM ready function
});

除了之前的所有答案,jQuery還有三種可用的初始化方法:

傳統方法與大多數瀏覽器兼容,請參閱代碼:

$(document).ready(function () {

        });

簡單的方法,見代碼:

$(function () {

        });

隱式方法,見代碼:

$().ready(function () {

        });

它們都適用於現代瀏覽器並且可以安全使用。


雖然這是一個古老的對話,我想分享我的方式來初始化jQuery

;(function($, window, document) {

    // Your Code Goes Here

}(window.jQuery, window, document));

通過這個,你可以肯定沒有什麼可以出錯。





jquery