Comment savoir dans mon code de déclenchement que preventDefault
a été appelé?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
Comment savoir dans mon code de déclenchement que preventDefault
a été appelé?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
trigger () peut également prendre un objet événement, donc si vous pouvez créer un objet événement, comme ceci:
var event = jQuery.Event("customEvent");
$(document).trigger(event);
alors vous pouvez vérifier après le déclencheur pour voir si preventDefault () a été appelé comme ceci:
var prevented = event.isDefaultPrevented();
Les événements personnalisés n'ont pas d'actions par défaut qui se produisent .. (ils sont personnalisés).
D'un autre côté, si vous voulez arrêter l'effet de propagation de cet événement à d'autres, jetez un œil à triggerHandler
qui ne remonte pas à la hiérarchie.
À ma connaissance, la "preventDefault()" appel est de prévenir le navigateur natif des réponses à des choses comme les clics sur les balises d'ancrage ou des combinaisons de touches dans les champs de texte. Une fois la gestion des événements de cycle est terminé, c'est fini. Pour des événements, je ne pense pas que cela ait un quelconque effet depuis qu'il est tout au sujet de l'jQuery de traitement des événements système et pas sur les indiens de la fonctionnalité de navigateur.
Votre code pourrait définir une sorte de drapeau quelque part afin de communiquer avec le "monde extérieur."
[edit] oh! vous pourriez essayer d'avoir le gestionnaire de ranger une référence à l'objet de l'événement quelque part que la exteral code peut le trouver, puis à l'externe, vérifiez avec "isDefaultPrevented()". Je ne sais pas si c'fallait cependant.
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.