Plusieurs JS gestionnaires d'événements sur un seul élément

Je suis en train de travailler avec une web app, dans l'application, il existe une variété de soumettre des boutons de différentes formes, certains à l'aide de http post, certains de définition d'une fonction onClick, et certains de liaison d'un js gestionnaire d'événement pour le bouton à l'aide d'une classe sur l'élément.

Ce que je veux faire, c'est de lier un autre gestionnaire d'événement pour ces boutons de par le simple ajout d'une classe pour les boutons, mais ce que je veux déterminer est le nouveau gestionnaire d'événement garanti pour être exécuté, ou pourrait-on du formulaire de soumission actions se passent avant qu'il ne la sens ma nouvelle fonction n'est pas touché.

Le scénario de l'exemple est que je veux ajouter une classe à ces boutons qui bimds tous à une fonction js qui se connecte simplement l'utilisation de certaines api. Il y a un risque que la fonction d'enregistrement n'est pas appelé parce que le formulaire de soumission a navigué à partir de la page?

Je n'ai pas fait de charges de js de développement, et j'ai pu tester, 100 fois plus et juste avoir de la chance avec elle de tir.


Ci-dessous est un code que j'ai testé avec pour l'un des exemples - encore une fois, je ne suis pas demandant comment lier plusieurs événements, la question est à propos de ma compréhension de la spécification et si l'exécution de tous les gestionnaires est garanti.

$(document).ready(function(){
    $('.testingBtn').click(function() {
        window.location.replace("http://stackoverflow.com");
    });
    $( ".testingBtn" ).click(function(){
        alert('submitting!');
    });
});


<input class="testingBtn" type="submit" id="submitform" value="Complete Signup" />

Comme vu ci-dessus, je peux lier les événements multiples, et dans cet exemple, juste redirigé vers une autre url, mais cela pourrait être un form.submit() etc. Dans mon test, l'alerte a toujours tiré la première, mais je suis juste en train de chance avec les conditions de course?

  • Êtes-vous à l'aide de jQuery, ou d'autres DOM et de la bibliothèque d'événements? Parce que c'est un cas que la plupart de ces bibliothèques couvrir avec une extrême élégance.
  • Yep requête, même si il est plus adapté lib serait heureux d'entendre parler d'eux.
  • query? Voulez-vous dire jQuery?
  • Oui, désolé. Sur mobile.
  • J'étais sur mon portable, donc ne pouvait pas facilement ajouter code - ajouter un peu de la question maintenant, cependant, je pense que votre commentaire est un peu injuste - Ma question n'est pas de savoir comment faire quelque chose, il est à préciser ou de corriger ma compréhension de certains js concepts (par exemple, plusieurs gestionnaires d'événements garantie, même si l'on est de la navigation à partir de la page). J'ai essayé, et dans mes expériences qu'ils ont terminé - mais si les conditions de course sont impliquées, comme mentionné, j'ai pu courir le test 1000 fois et avoir de la chance, et il ne suffit pas de prouver le contraire
  • désolé, mais j'ai un peu frustré par la lecture de beaucoup de paresseux-questions. Retrait du commentaire, et a ajouté une VanillaJS réponse, avec un lien pour les lire sur le sujet des événements, des événements d'ordre et le lot...
  • pas de probs, comprendre la douleur - merci pour la réponse, très utile.

InformationsquelleAutor rhinds | 2013-06-27