在jQuery live中调用用户定义的函数

时间:2013-05-30 04:17:34

标签: jquery live user-defined-functions

我定义了一个函数并在实时点击事件中调用它,但该函数在没有click事件的情况下运行。代码是这样的:

function validate(flag){
   //do something
}
$('#btnYes').live('click', validate(1));

验证功能在任何点击之前在页面加载时运行。有什么问题?

3 个答案:

答案 0 :(得分:2)

虽然另一个答案可以满足您的需求,但我强烈建议您不要使用live()方法,因为deprecated我建议使用on()方法,您可以像这样编写它:

$(document).on("click", "#btnYes", function(){ validate(1); }); 

以下是documentation

答案 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);
}