给定以下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