我目前正在处理触发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的点击。关于如何实现这一点的任何想法??
由于
答案 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)
第一次点击后,您是否考虑过停用按钮?
听起来像解决多次提交问题。