2012-07-09 64 views
1

此代碼時jQuery的語法?我們什麼時候打第一個電話,什麼時候打第二個電話?方法執行的順序是什麼?調用方法

回答

2

someMethod1執行立即

someMethod2等待整個頁面加載, 包括外部JavaScript文件(其他腳本,或從其他網站),CSS 和其他資源執行代碼之前。

$(function() { 
    //run after page loads 
}); 

方法2有時進來的

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

形式有關的詳細信息:http://api.jquery.com/ready/

+0

它實際上綁定到DOM就緒事件,這意味着它在所有資源加載之前觸發。所有同步腳本都將在DOM準備好之前執行,但圖像可能不會。 – 2012-07-09 06:31:56

3
someMethod1(); 

這可能會在文檔準備好之前或之後調用,它不需要jQuery。如果這是在你的頁面的末尾,當所有的控件都準備好的時候它會被調用,但如果它在中間,那麼它只會知道被渲染的控件。

$(function() { 
    someMethod2(); 
}); 

這是在文檔準備就緒並且所有控件已準備好/呈現之後總是調用。這需要jQuery。你可以閱讀更多關於準備here。這也將幫助您瞭解其他函數調用。

1

在腳本塊中的陳述在它們發生的次序被執行。如果我們數的行,並插入一個額外的換行或兩個,使其更容易談:

1 someMethod1(); 
2 
3 $(
4 function() { 
5  someMethod2(); 
6 } 
7 ); 

1號線,someMethod1()首先執行。

然後線3,$()被執行,其中所述參數是$()在線路4至6,爲了以後響應於所述文檔準備事件執行匿名功能$()功能時間表定義的匿名函數。也就是說,匿名函數當時不會執行。

最後,當文檔準備好時,執行第4行到第6行的匿名函數,這意味着第5行someMethod2()發生。