2010-12-22 66 views
1

給定以下jQuery表達式當使用jQuery .each()函數執行函數時?

$("form").each(function() { 
     var info = validationInfo(this); 
     if (info) { 
      info.attachValidation(); 
     } 
    }); 

選擇器選擇頁面上的所有形式,然後找到的每個「形式」,其附加的功能。

我的問題是什麼時候JS在這個函數實際運行?函數中的JS在連接時執行嗎?

+1

我認爲你需要讓我們認識了什麼`validationInfo()`和`attachValidation()`在我們能夠回答這個問題之前。 – 2010-12-22 20:19:49

+1

函數中的JS在調用時運行。 – 2010-12-22 20:20:49

+0

我很欣賞迄今爲止所有的答案。看來我提交了一個不好的例子。我想用一個更好的更新(我認爲它是無論如何),但它會使已經發布的帖子無效。我應該開始一個不同的線程?還是應該編輯原始問題中的代碼?不清楚協議 – 2010-12-22 21:29:05

回答

2

這一切都取決於代碼的位置。

它將運行如果您在一個$(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(); 
     } 
    }); 
} 
2

什麼時候是attachValidation()跑?它在循環中被調用後立即執行。