给出以下jQuery表达式
$("form").each(function () {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
选择器选择页面上的所有表单,然后对于找到的每个“表单”,它会附加一个函数。
我的问题是这个函数中的JS何时实际运行?函数中的JS在附加时是否会执行?
答案 0 :(得分:2)
attachValidation()
何时开始?它在循环中被调用后立即执行。
答案 1 :(得分: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();
}
});
}