給定以下jQuery表達式當使用jQuery .each()函數執行函數時?
$("form").each(function() {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
選擇器選擇頁面上的所有形式,然後找到的每個「形式」,其附加的功能。
我的問題是什麼時候JS在這個函數實際運行?函數中的JS在連接時執行嗎?
給定以下jQuery表達式當使用jQuery .each()函數執行函數時?
$("form").each(function() {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
選擇器選擇頁面上的所有形式,然後找到的每個「形式」,其附加的功能。
我的問題是什麼時候JS在這個函數實際運行?函數中的JS在連接時執行嗎?
這一切都取決於代碼的位置。
它將運行如果您在一個$(function(){...}
塊的代碼塊,runs when the document is parsed:
$(function(){
$("form").each(function() {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
})
雖然根據你的使用情況,您可能需要驗證所有形式,當用戶事件發生像點擊一個按鈕。在這種情況下,你必須包括在其中執行函數的代碼,當用戶點擊一個按鈕:
//Bind function to button
$("#mybutton").live('click', doValidation);
//Do validation
function doValidation() {
$("form").each(function() {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
}
什麼時候是attachValidation()
跑?它在循環中被調用後立即執行。
我認爲你需要讓我們認識了什麼`validationInfo()`和`attachValidation()`在我們能夠回答這個問題之前。 – 2010-12-22 20:19:49
函數中的JS在調用時運行。 – 2010-12-22 20:20:49
我很欣賞迄今爲止所有的答案。看來我提交了一個不好的例子。我想用一個更好的更新(我認爲它是無論如何),但它會使已經發布的帖子無效。我應該開始一個不同的線程?還是應該編輯原始問題中的代碼?不清楚協議 – 2010-12-22 21:29:05