我定义了一个函数并在实时点击事件中调用它,但该函数在没有click事件的情况下运行。代码是这样的:
function validate(flag){
//do something
}
$('#btnYes').live('click', validate(1));
验证功能在任何点击之前在页面加载时运行。有什么问题?
答案 0 :(得分:2)
虽然另一个答案可以满足您的需求,但我强烈建议您不要使用live()
方法,因为deprecated我建议使用on()
方法,您可以像这样编写它:
$(document).on("click", "#btnYes", function(){ validate(1); });
答案 1 :(得分:0)
您必须传递函数引用而不是调用函数。
$('#btnYes').live('click', validate);
live
会在发出点击事件时为您致电validate
。
但是,在这种情况下你无法传递旗帜。所以你仍然必须使用匿名函数。
$('#btnYes').live('click', function() { validate(1); });
答案 2 :(得分:0)
找到了一种通过on方法将参数传递给函数的方法:
$(document).on('click', '#btnYes', {flag:1}, validate);
并在函数中获取参数:
function validate(params){
alert(params.data.flag);
}