2010-12-22 46 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()跑?它在循环中被调用后立即执行。