Comment arrêter la propagation d'événements personnalisés dans jQuery?
Par exemple, j'ai ce code:
$('.myclass').bind('amodaldestroy', function(){
....does something.....
})
Comment puis-je autoriser ce déclenchement uniquement une fois sur le premier élément qu'il trouve lors de la propagation? Puis-je simplement ajouter return false
?
$('.myclass').bind('amodaldestroy', function(){
....does something.....
return false;
})
Selon jQuery documentation :
$('myclass').bind('amodaldestroy'), function(event) {
....does something....
event.stopPropagation();
});
Utilisez event.stopPropagation();
$('.myclass').bind('amodaldestroy', function(e){
e.stopPropagation();
});
Vous pouvez également utiliser return false
Mais il existe une différence subtile entre les deux en ce sens que le retour de faux appelle également event.preventDefault();
Pour le support dans IE <9:
$(".element").click(function(e)
{
var event = e || window.event;
event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});
Ce n'est peut-être pas génial mais
return false;
return false
fera à la fois stopPropagation
et event.preventDefault...
si vous ne voulez qu'un seul, vous pouvez choisir en fonction de votre choix
veuillez lire ceci, cela vient de SO seulement
return false
est à la fois preventDefault et stopPropogation.
preventDefault
empêchera l'événement par défaut de se produire, stopPropogatio
n empêchera l'événement de se propager et retourner false fera les deux.