簡體   English   中英

在Dojo或Javascript中,如何使我的事件處理程序在其他事件處理程序之前啟動?

[英]In Dojo or Javascript how do I make my event handler fire before other event handlers?

在Dojo Javascript庫中,我了解如何使用dojo.connect或dojo.publish將事件處理程序連接到事件。 該功能效果很好。

但我想再做一件事。

我希望我的事件處理程序首先觸發,然后再觸發其他已定義的事件處理程序。 我想這可以稱為“事件處理程序插入”之類的東西。

在Dojo中有沒有辦法做到這一點,或者在普通Javascript中有沒有方便又優雅的辦法?

嘗試像這樣修改事件:

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
}

觸發事件后,它們將與其動作 (onload,onclick)相關聯。 那么,如何在觸發其他操作之前觸發事件?

例如,如果您不知道何時觸發事件,該如何在onclick之前觸發事件?

這絕對是您無法做的事情,也許您想將處理程序注冊到onload事件,該事件通常在所有其他事件之前觸發。

我遇到了一個(可能)相關的問題,並且最終使用setTimeout設置了一個標志。

javascript模糊事件-有什么方法可以檢測到哪個元素現在具有焦點? 丑陋,但是行得通。

據我所知,一旦事件處理程序附加到DOM節點,處理程序執行的順序就取決於實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM