在Dojo或Javascript中,如何使我的事件处理程序在其他事件处理程序之前启动?

在Dojo或Javascript中,如何使我的事件处理程序在其他事件处理程序之前启动?,javascript,events,event-handling,dojo,Javascript,Events,Event Handling,Dojo,在DojoJavaScript库中,我了解如何使用Dojo.connect或Dojo.publish将事件处理程序连接到事件。该功能非常有效 但我还想做一件事 我希望我的事件处理程序先启动,然后再启动任何其他已定义的事件处理程序。我想这可以称为“事件处理程序插入”之类的东西 有没有一种在Dojo中实现这一点的方法,或者有一种在普通Javascript中实现这一点的方便而优雅的方法 触发事件时,它们会连接到其操作(onload、onclick)。那么,如何在触发其他操作之前触发事件呢 例如,如果不

在DojoJavaScript库中,我了解如何使用Dojo.connect或Dojo.publish将事件处理程序连接到事件。该功能非常有效

但我还想做一件事

我希望我的事件处理程序先启动,然后再启动任何其他已定义的事件处理程序。我想这可以称为“事件处理程序插入”之类的东西


有没有一种在Dojo中实现这一点的方法,或者有一种在普通Javascript中实现这一点的方便而优雅的方法

触发事件时,它们会连接到其操作(onload、onclick)。那么,如何在触发其他操作之前触发事件呢

例如,如果不知道什么时候触发事件,在单击
onclick
之前如何触发事件

这绝对是你不能做的,也许你想将处理程序注册到
onload
事件,该事件通常在所有其他事件之前触发。

我遇到了一个(可能)相关的问题,最后使用setTimeout设置了一个标志


难看,但它可以工作。

尝试如下修改事件:

function alertTest(){
    alert('test');
}

function alertTest2(){
    alert('test2');
}

window.onload = alertTest2; //just setting it to simulate that an event
                            //is already set

oldOnload = window.onload; //store the old event into a temporary variable
window.onload = function() { //assign a new function to the event
    alertTest(); //whatever your "must happen first" function is
    oldOnload.apply(); //run the original event after
}

据我所知,一旦事件处理程序连接到DOM节点,处理程序的执行顺序就取决于实现