我application.js
有這個在外面?
$(function() {
// My functions are in here, and some of them even work.
}
我剪切和粘貼,直到我得到了一些工作。?,我現在正在學習jQuery的認真有點落後,我知道
什麼是上面代碼的目的,$(function() { }
我application.js
有這個在外面?
$(function() {
// My functions are in here, and some of them even work.
}
我剪切和粘貼,直到我得到了一些工作。?,我現在正在學習jQuery的認真有點落後,我知道
什麼是上面代碼的目的,$(function() { }
這是一個shortcut for:
$(document).ready(function() {
});
這意味着一旦DOM完全加載,腳本就會運行。這意味着腳本中依賴某些DOM節點的任何部分都可以工作。如果你的頁面頂部有你的.js文件,它會在DOM節點存在之前執行,這意味着你會嘗試使用那些不存在的東西。 $(document).ready()
允許您推遲執行代碼,直到頁面準備就緒。
因此,舉例來說,假設你有以下的JavaScript,裝在頭部的腳本標籤:
$('a').click(function() {
alert("You can't leave!!!");
return false;
});
,試圖點擊處理程序添加到所有<a>
標籤,但目前還沒有任何<a>
標籤,所以它不會做任何事情。如果您在$(document).ready()
包裹它,它看起來是這樣的:
$(document).ready(function() {
$('a').click(function() {
alert("You can't leave!!!");
return false;
});
});
現在只會被當文檔準備好執行。
要回答標題中的問題,請不要將所有內容都包含在$(document).ready()
中 - 只需依賴存在完全加載的DOM的代碼即可。
不,你只需要擁有那些語句裏面的時候$(function(){});
的功能,所有的第一次加載頁面可以定義在別處,你想執行。
因此,聽起來像所有綁定到特定動態項目的綁定都需要在那裏。謝謝邁克。 – AKWF 2010-11-16 21:55:42
基本上啥子中運行,做的代碼時,身體被加載
讓我在一個小更詳細的解釋。
當頁面加載從第一行到最後一行的瀏覽器加載,當您在<head>
標籤加載jQuery的,這被載入前<body>
作爲<head>
是身體
拿這個例子以上:
<!DOCTYPE html>
<html>
<head>
<script type="x" source="jquery.js" />
<script type="x">
$("#my_id").remove();
</script>
</head>
<body>
<div id="my_id"></div>
</body>
</html>
,你可以看到加載的第一資源,多數民衆贊成是jquery.js
,以下在那裏我有jQuery代碼WIL lexecute因爲jQuery已經加載行,所以$()
存在。
問題是,jquery代碼正在尋找那個不存在的東西,因爲DOM還沒有解析它。
以下語法的用法是,當您將「匿名函數」發送給jquery時,它會存儲它直到文檔被完全加載,因此<div>
將存在並且該命令成功執行。
$(function(){
})
那裏有寫這幾方面來看,主要方式是像這樣:
$(document).ready(function(){
//Code here will only be run upon document ready.
});
但我更願意做事的方式是:
mysite = {}; //Creates a "namespace/Object" for me to work within
mysite.dialog = function(title,message){/*blah*/}
mysite.init = function(){
//Code here is for the Document Ready state.
mysite.dialog("hey","the document has been loaded");
}
然後我店這在我的Application.js
文件中,並且包括在jquery.js
之後
然後在我的文檔中運行follo翼指揮。
$(document).ready(mysite.init);
我喜歡羅伯特。我很感激你花了這麼多時間來回答我的問題。謝謝! – AKWF 2010-11-16 21:54:58
清除爲白天。非常感謝! – AKWF 2010-11-16 21:52:55
@AKWF沒有問題 - 很樂意幫助:) – Skilldrick 2010-11-16 21:59:16