2012-09-09 52 views
1

爲了確保$總是引用jQuery更好的辦法,我的代碼格式如下:

方法#1

(function($) { // Use $ here })(jQuery);

按我的理解,我們創建的函數會立即調用,並且我們將jQuery傳遞給它並在$中捕獲它,因此我們的$將始終引用jQuery。最安全的方式,jQuery插件是這樣編碼的。

現在,我看到一些開發人員使用以下格式編碼,看起來工作得很好,但想確認它是否正確,因爲我不明白它如何正常工作。

方法2

jQuery(document).ready(function($) { // Use $ here });​

因此,在這種方法中,文件準備功能,通過直接使用jQuery這是確定的,但隨後$傳遞給它,現在也沒有辦法叫我們可以確定它只會引用jQuery,對嗎?像Prototype在頁面上加載jQuery之後,那麼這個$將引用原型而不是其中的jQuery。

因此,簡而言之,兩種方法都是安全的嗎?如果是的話,如何以及哪一個更好?

回答

2

兩者都是安全的; jQuery will pass itself as the argument將函數傳遞給ready

它們都適用於不同的事情。如果您希望代碼立即執行,而不是等待文檔準備就緒,則第一種方法更合適。當文檔準備就緒時,想要執行代碼時後者更合適。

+0

謝謝! 「jQuery將自己傳遞」正是我需要知道的。 – Ashfame

2

這兩種方法都是安全的。如果希望代碼在DOM準備就緒後立即執行,請使用後者,如果要立即運行,請使用第一種方法。

您可能希望它雖然結合:

(function($) { 
    // code that runs immediately 

    $(document).ready(function() { 
     // code that runs when the DOM is ready 
    }); 
})(jQuery); 
+0

是的,我知道這一點。謝謝! – Ashfame