在现有处理程序之前附加我的Event处理程序

时间:2011-06-02 20:17:14

标签: javascript javascript-events

我们假设有一个 <img> 元素,其中包含一些 onclick 事件处理程序。例如,点击它alert("OldEventHandler")

我想在现有的之前添加我的事件处理程序。例如,我的事件处理函数执行alert("NewEventHandler")

所以点击我想看“NewEventHandler”弹出窗口,然后弹出“OldEventHandler”。

这需要在纯JavaScript中实现; 没有jQuery请

2 个答案:

答案 0 :(得分:12)

您可以保存原始处理程序,然后在完成后调用它:

var oldHandler = myElement.onclick;

myElement.onclick = function() {
    // do your stuff here
    ...

    // then call the original
    oldHandler.apply(this, arguments);
}

答案 1 :(得分:0)

解决此问题的另一种方法是创建一个泛型事件处理程序,该处理程序以某种预定义的顺序存储一系列函数。触发onclick()事件后,您可以按顺序调用所需的函数。