Quelqu'un peut-il m’indiquer le différences b/w jquery et
méthodes (éventuellement avec un exemple) ?
Réponses
Trop de publicités?empêchera tout gestionnaire **parent** en cours d’exécution alors que
fera la même chose mais aussi empêcher les autres gestionnaires de s’exécuter.
Petit exemple de la documentation de jquery :
Ajouté un petit exemple sur jsfiddle pour montrer comment ces deux multiplication des arrêts de travail.
Il y a trois gestionnaires d'événements liés. Si on n'arrête pas tout de propagation, puis il devrait y avoir quatre alertes - trois sur l'enfant div, et un sur le div parent.
Si nous nous arrêtons le cas de la multiplication, puis il y aura 3 alertes (tout sur l'enfant intérieur de la div). Depuis l'événement ne sera pas propagée vers le haut de la hiérarchie DOM, le div parent de ne pas le voir, et son maître ne se déclenche pas.
Si nous nous arrêtons de propagation immédiatement, puis il y aura seulement 1 alerte. Même s'il y a trois gestionnaires d'événement attaché à l'intérieur de l'enfant div, seulement 1 est exécutée et la toute nouvelle propagation est tué immédiatement, même au sein du même élément.
À partir de l' API jQuery:
En plus de garder supplémentaires les gestionnaires sur un élément de exécutée, cette méthode s'arrête la bouillonnant par implicitement appel de l'événement.stopPropagation(). Tout simplement prévenir les cas de propagation de ancêtre des éléments, mais de permettre à d'autres les gestionnaires d'événements à exécuter sur le même élément, nous pouvons utiliser de l'événement.stopPropagation() à la place.
Utilisation de l'événement.isImmediatePropagationStopped() pour savoir si cette méthode n'a jamais été appelé (sur cet événement de l'objet).
En bref: event.stopPropagation()
permet à d'autres gestionnaires sur le même élément à être exécuté, alors qu' event.stopImmediatePropagation()
empêche de chaque événement en cours d'exécution.
de l'événement.stopPropagation() permet à d'autres gestionnaires sur le même élément à exécuter, en tout cas.stopImmediatePropagation() empêche de faire de chaque événement en cours d'exécution. Par exemple, voir ci-dessous jQuery bloc de code.
$("p").click(function(event)
{ event.stopImmediatePropagation();
});
$("p").click(function(event)
{ // This function won't be executed
$(this).css("color", "#fff7e3");
});
Si l'événement.stopPropagation a été utilisé dans l'exemple précédent, alors le prochain événement de clic sur l'élément p qui modifie le css feu, mais dans le cas de l'événement.stopImmediatePropagation(), la prochaine p cliquez sur l'événement ne se déclenche pas.