我有一个按钮,其中包含一个提交表单的点击事件(来自3.方库)。我想删除click事件,添加我自己的函数并在验证后调用原始事件。
我以为我只是添加一个event.stopImmediatePropagation();
,但这不起作用。也许是因为添加事件的顺序(?)。
管理事件执行的另一种方法是什么?
或者我怎样才能让旧事件做到这样:
originalClickEvent = $('#button').doSomeMagicAndGetTheEvent('click');
$('#button').unbind();
$('#button').bind('click', function (event) {
if (valid()) originalClickEvent();
});
答案 0 :(得分:1)
看这里Remove all JavaScript event listeners of an element and its children?
删除事件侦听器后,您可以附加自定义事件。
如果我理解正确,这就是您要搜索的效果:http://jsfiddle.net/ftGHq/
答案 1 :(得分:0)
如果click事件刚刚绑定到一个函数,您可以覆盖该函数:
var oldFunction = theOldFunction;
function myFunction(control) {
oldFunction(control);
}
$('#button').unbind();
$('#button').click(myFunction);