将我的事件处理程序追加到现有处理程序之前

Append my Event handler before existing handler

本文关键字:程序 处理 我的 事件处理 追加      更新时间:2023-09-26

假设有一个<img>元素具有一些onclick事件处理程序。例如onclick,它执行alert("OldEventHandler")

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

所以点击后我想看到";NewEventHandler";弹出,然后";OldEventHandler";弹出窗口。

这需要在纯JavaScript中实现请不要jQuery

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

var oldHandler = myElement.onclick;
myElement.onclick = function() {
    // do your stuff here
    ...
    // then call the original
    oldHandler.apply(this, arguments);
}

解决此问题的另一种方法是创建一个通用事件处理程序,该处理程序以某种预定义的顺序存储函数数组。当onclick()事件被激发时,您可以按该顺序调用所需的函数。