2013-10-15 82 views
1

jquery(callback) docs明確聲明它在運行該函數之前等待DOM完成加載。 [ref:http://api.jquery.com/jQuery/#jQuery3]做jquery(選擇器,...)重載等待dom完成加載?

另一方面,jquery(selector, ...) docs似乎不清楚在選擇器運行時DOM是否會完成加載。

所以,這裏是一個真正的問題:請有人告訴我,我是否真的需要將我所選擇的所有選擇器嵌入jquery(回調函數)中,就像我現在正在做的那樣?

jquery(function() { jquery(selector).dostuff(); })

(或$(function() { $(selector).dostuff(); })這是相同的)

回答

4

jQuery(callback)jQuery(callback)重載是jQuery(document).ready(callback)的簡寫,所以它會在解析文檔時運行回調函數中的代碼。

jQuery(selector, ...)不是任何事件綁定的簡寫,它會在代碼運行時返回選擇器匹配的元素。


不使用回調的方法實際上無法等到文檔被解析。如果該方法只是等待文檔完成,那絕不會發生。在Javascript代碼正在運行時,瀏覽器不會繼續解析文檔。

+0

+1關於不使用回調方法的好處 –

0

只在您需要的當前頁面(在DOM)你的代碼運行時,可用來包裝你的代碼。

0

它說在jQuery文檔中,當您選擇一個沒有回調函數的元素時,回調函數會等待DOM加載。

這有一個回調函數。

jQuery(function() { 

}); 

這不

jQuery('#element'); 
3

不,jQuery(selector)不等待DOM完成加載。 jQuery(callback)只是jQuery(document).ready(callback)的簡寫,而ready事件表示正在加載的DOM。