2017-09-06 109 views
1

有什麼用

$(function(){ 
}); 

$(document).ready(function(){ 
}); 

試過在兩者之間的區別,無論是工作得很好,但在運行時會發生什麼。

+1

*更好*取決於個人的經驗,從而使這個問題的主要意見。如果你有特定的問題,通過一切手段編輯你的問題來反映這一點。 – Script47

+0

他們是一樣的,閱讀官方文檔[文檔就緒](https://learn.jquery.com/using-jquery-core/document-ready/) – Satpal

+0

如果我記得很清楚,它是完全一樣的。首先是更短。 – TGrif

回答

1

兩者完全相同,但第二種形式不推薦在jQuery v3中使用。請參閱文檔中的herehere。從第二個鏈接開始:

jQuery提供了幾種附加DOM準備就緒的函數的方法。以下所有的語法是等效的:

$(handler) 
$(document).ready(handler) 
$("document").ready(handler) 
$("img").ready(handler) 
$().ready(handler) 

在jQuery 3.0,僅建議所述第一語法;其他語法仍然有效,但不推薦使用。

+0

呃? '$(「img」)。ready'如何等於'$(document).ready'?我錯過了什麼?爲什麼'img'? –

+1

@JeremyThille:因爲jQuery對象的內容完全**被'ready'忽略;請參閱以'jQuery.fn.ready ='[在未定義文件](https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js)開頭的代碼。就個人而言,我更喜歡文檔中沒有包含該示例(並且在包含除「文檔」之外的任何內容的集合上使用'ready'),但是...他們沒有向我諮詢。 ;-) –

+0

哇,我不知道。那麼如果這個論點完全被忽略了,爲什麼還要在第一個地方寫文檔或其他東西呢?奇怪的。 –

0

1。== >> $(document).ready(function(){ }); - 這是爲了防止在文檔加載完成之前運行任何jQuery代碼。 - 這也可以讓你在你的文檔的正文之前的頭部分中有你的JavaScript代碼。 (函數(){

}); - 這是文檔就緒事件的較短方法。

這兩種方法都可行,但文檔就緒事件在閱讀代碼時更易於理解。

相關問題