1

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

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

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

4

3 回答 3

2

尽管其他答案可以满足您的需要,但我强烈建议您不要使用该live()方法,因为它已被弃用,但我建议您使用该on()方法,您可以像这样编写它:

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

这是文档

于 2013-05-30T04:35:18.250 回答
0

找到了一种通过 on 方法将参数传递给函数的方法:

$(document).on('click', '#btnYes', {flag:1}, validate);

并像这样在函数中获取参数:

function validate(params){
    alert(params.data.flag);
}
于 2013-05-31T18:26:53.883 回答
0

您必须传递函数引用而不是调用该函数。

$('#btnYes').live('click', validate);

livevalidate引发点击事件时会调用您。

但是,在这种情况下,您不能传递标志。所以你仍然必须求助于使用匿名函数。

$('#btnYes').live('click', function() { validate(1); });
于 2013-05-30T04:19:52.723 回答