jQuery - 重叠点击事件......如何防止一个

时间:2010-02-10 19:17:11

标签: jquery events click overlap

我目前正在处理触发ajax调用的click事件。我想利用一个小插件,它将处理一些表单数据验证。问题是,插件的ajax调用和验证功能都将在同一个点击事件中触发。

最后,我希望插件覆盖ajax函数。我真的不确定如何去做。有什么建议?我无法发布整个插件,但这是一个快速的示例。

Ajax Call在这里被解雇:

$('p.thisClass').live('click',function() {
    //Ajax Fires here
});

插件片段在这里:

config.button.live('click', function() {
    someFunction();
    // Stop Other click event from firing
});

有几种方法可以看到这一点,但最后,我希望插件优先于触发ajax的点击。关于如何实现这一点的任何想法??

由于

3 个答案:

答案 0 :(得分:0)

取消一个事件,我只是

return false;

您只需要检查首先附加哪个事件处理程序。

然而,一个更好的解决方案是验证变更,而不是提交。这样做可以让用户更快,更轻松地纠正他们的错误。

答案 1 :(得分:0)

你有控制绑定功能吗?如果是这样,请参考jQuery的unbind或die方法: Unbind Die

使用这样的方法,你可以将你原来的ajax点击事件分配给一个变量然后解除绑定/死掉那个:

  

示例:先取消绑定一个   绑定处理程序,将函数传递给as   第二个论点:

     var foo = function () {
     // code to handle some kind of event
     };

     $("p").bind("click", foo); // ... now foo will be called when paragraphs
 are clicked ...

     $("p").unbind("click", foo); // ... foo will no longer be called.

答案 2 :(得分:0)

第一次点击后,您是否考虑过停用按钮?

听起来像解决多次提交问题。