事件管理:替换click事件

时间:2011-12-21 09:41:19

标签: javascript jquery

我有一个按钮,其中包含一个提交表单的点击事件(来自3.方库)。我想删除click事件,添加我自己的函数并在验证后调用原始事件。

我以为我只是添加一个event.stopImmediatePropagation();,但这不起作用。也许是因为添加事件的顺序(?)。

管理事件执行的另一种方法是什么?

或者我怎样才能让旧事件做到这样:

originalClickEvent = $('#button').doSomeMagicAndGetTheEvent('click');
$('#button').unbind();
$('#button').bind('click', function (event) {
  if (valid()) originalClickEvent();
});

2 个答案:

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