2009-02-10 8 views
0

Dans la bibliothèque Javascript de Dojo, je comprends comment utiliser dojo.connect ou dojo.publish pour connecter mon gestionnaire d'événements à un événement. Cette fonctionnalité fonctionne très bien.Dans Dojo ou Javascript, comment faire en sorte que mon gestionnaire d'événements se déclenche avant les autres gestionnaires d'événements?

Mais je veux faire une chose supplémentaire.

Je souhaite que mon gestionnaire d'événements se déclenche en premier, avant tout autre gestionnaire d'événements déjà défini. Je suppose que cela pourrait être appelé "insertion de gestionnaire d'événements" ou quelque chose.

Existe-t-il un moyen de le faire dans Dojo ou un moyen pratique et élégant en Javascript simple?

Répondre

0

Lorsque des événements sont déclenchés, ils sont connectés à leur action (onload, onclick). Alors, comment déclencheriez-vous un événement avant que d'autres actions ne soient déclenchées?

Par exemple, comment déclencheriez-vous un événement avant un onclick si vous ne savez pas quand il va être déclenché? Faire, peut-être que vous voulez enregistrer des gestionnaires à l'événement onload, qui est généralement déclenché avant tous les autres

1

Essayez de modifier votre événement comme celui-ci:

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 
} 
0

Pour autant que je sache, une fois que les gestionnaires d'événements sont attachés au nœud DOM, la séquence des gestionnaires d'exécution dépend de l'implémentation.