J'ai hérité de JS (que je ne peux pas changer) qui incendie une série d'événements: et je veux observer pour tous ces événements et analyser le Valeur pour Si cela n'a pas changé, je pouvais faire cela: P> section code>, et faire quelque chose de différent selon son contenu. p>
jQuery(document).on('section:top', doStuff );
3 Réponses :
Vous ne pouvez pas écouter tous les événements dans le style de puis vous écoutez-le et n'a pas besoin d'analyser quoi que ce soit p> Si vous souhaitez minimiser vos modifications de code, laissez l'ancien événement de là, ainsi que le code existant ne sera pas affecté. P> Une approche différente serait d'utiliser des espaces de noms d'événements. p> i, cependant, préférez-vous la première approche car les espaces de noms d'événements sont les plus couramment utilisés dans un but différent: être capable de supprimer les événements sans être forcé de conserver une référence à la gestionnaire lui-même. Voir http://css-tricks.com/namesPaCed-Event-jquery/ et http://ejohn.org/apps/workshop/adv-Talk/#13 a>. Je préfère utiliser des styles que d'autres développeurs sont utilisés, s'ils font le travail. P> p> $ (). Sur ('Section: *') code>, malheureusement. Si vous pouvez changer le code, je ferais ce qui suit:
Une bonne réponse, j'ai utilisée une partie de cela dans ma solution finale. Merci!
Je ne suis vraiment pas sûr de votre cas d'utilisation, mais vous pouvez écraser p> $. fn.trigger code> Méthode:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Voici ce que j'ai fini par faire.
C'est une combinaison de la solution de Juan Mendes, et utilise un méthode de la bibliothèque de prototypes p>
à l'origine, il y avait une fonction qui a exécuté ce code: p> donc je étendue la fonction avec la méthode code> de prototype code>, car mon projet a utilisé le prototype ainsi que jQuery. p> alors, il exécute l'original, mais aussi incendie mon événement personnalisé qui inclut les informations de la section. P> Maintenant, je peux le faire pour observer cet événement et obtenir le type de section: p>
Pourquoi ne pouvez-vous pas simplement modifier myObject.Prototype.AdJustSection code> dans son lieu d'origine? Je ne ferais que cela pour les bibliothèques tiers où apporter des modifications à leur code peut rendre très difficile la mise à niveau.
Bon point, mais je n'ai pas accès à la modification de la déclaration de méthode originale.
Vous ne pouvez pas! JQuery's
Trigger CODE> ne stocke pas les événements nulle part, qui se produit généralement lorsque les gestionnaires d'événements sont liés, donc si cela est donc de l'autre côté, vous pourriez probablement le faire. Bien sûr, tout est possible, vous pouvez analyser tout le JavaScript et rechercher des appels vers
Trigger CODE>, mais c'est juste faux.
Je pense que vous n'avez pas de chance, ce sont des événements essentiellement différents ... cette partie dynamique de l'événement aurait dû être un argument à l'événement.
jQuery (document) .trigger ('section', section); code> n'avez-vous aucun moyen de savoir quelles sont toutes les sections valides? Si tel est le cas, vous pouvez faire
$ (). On ('Section: Section supérieure: Section inférieure: Section droite: gauche') Code>
Stackoverflow.com/Questtions/26225987/...
Ces événements devraient utiliser l'espace de noms à la place
@ A.wolff c'est une autre façon de le faire. Cependant, la plupart des exemples d'espaces de noms d'événements que j'ai vus ne sont pas utilisés de cette façon, il est généralement de supprimer un gestionnaire sans y remédier, car John Resig le mettit, EJOHN.ORG/Apps/workshop/adv-Talk/#13 , voir aussi CSS-Tricks.com/namesPaCed-Event-jQuery . Pour moi, on ressent que le nom de la section devrait simplement être un paramètre de l'événement, c'est ainsi que nous distinguons les événements dans tous les autres cas, tels que la vérification
Event.Target code>.