[英]call function with parameters on any event using jquery
您好只是想知道这是否是正确的方法。 我知道我们可以使用对象表示法传递数据并使用它。 但是只是想知道下面的代码是否正确。 我不确定以下语法。
function isValid(errMessage,errId,errClass){
alert();
if($("#"+errId).val()==""){
$("."+errClass).show();
$("."+errClass).html(errMessage);
return false;
}else{
$("."+errClass).hide();
}
}
$("#fname").on("blur",isValid("please enter first name","fname","ferror"));
我看过如下语法:
function test(){
alert("Hello World");
}
$("#fname").on("blur",test);
检查此链接以获取输出http://jsfiddle.net/susheel61/M2jsX/
所以只想弄清楚传递参数是否直接有效。
您的代码调用isValid
方法,并将结果分配为blur
处理程序,因此不正确。 你应该做这样的事情
$("#fname").on("blur",function(){
isValid("please enter first name","fname","ferror")
});
看来您还可以做其他改进。 对我来说最明显的是传递this.id
而不是对id进行编码
$("#fname").on("blur",function(){
isValid("please enter first name", this.id, "ferror")
});
您可以将参数传递给事件处理程序,作为事件监听器的参数:
$("#fname").on("blur", {
msg: "please enter first name",
name: "fname",
error: "ferror"
}, isValid);
然后,您的isValid函数可以处理事件对象中的数据:
function isValid (event) {
var errMessage = event.data.msg,
errId = event.data.name,
errClass = event.data.error;
if ($("#"+errId).val()=="") {
$("."+errClass).show();
$("."+errClass).html(errMessage);
return false;
} else {
$("."+errClass).hide();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.