3 votes

Empêcher jQuery d'appeler les événements suivants

J'écris un plugin jQuery la première fois et je me demande s'il y a un moyen d'empêcher jQuery d'exécuter les prochains événements attachés.

Exemple :

$(this).submit(function(){
    return $(this).do_some_validation();
}

Si la validation n'a pas réussi (c'est-à-dire que la fonction a renvoyé false ), le formulaire ne doit pas être soumis, mais si d'autres gestionnaires d'événements sont associés, seule la valeur de retour du dernier gestionnaire peut empêcher le formulaire d'être soumis.

7voto

user619568 Points 31

Vous pouvez également consulter event.stopImmediatePropagation car stopPropagation "n'empêchera pas l'exécution d'autres gestionnaires sur le même élément" (par exemple, deux gestionnaires de soumissions sur le même formulaire devraient toujours être déclenchés si l'on utilise stopPropagation).

5voto

Mottie Points 31167

Utilisez la méthode stopPropagation() :

$(this).submit(function(e){
    e.stopPropagation();
    return $(this).do_some_validation();
}

2voto

Darin Dimitrov Points 528142

Vous pouvez consulter le site event.stopPropagation() fonction.

1voto

John Strickler Points 8534

stopPropagation() fonctionne pour la plupart des événements, mais ne fonctionne pas toujours pour les événements délégués, .live() y .delegate() .

return false; est un moyen infaillible si stopPropogation ne fonctionne pas premier .

0voto

ovitinho Points 61

J'utilise ces fonctions avec .live() et ne jamais avoir de problèmes

jQuery("a.entryTable, a.entryDelete").live("click", function(e) {   
    e.preventDefault();
    e.stopPropagation();

    // code

    return false;
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X