2016-04-26 1 views
1

Je travaille sur un framework d'application HTML5, géré par un serveur d'application SAP JEE, conçu pour les entreprises et leurs sites intranet et extranet. Il est basé sur le cadre de la grille "Semantic UI" et en outre, il contient beaucoup de Javascript (également tiers).Comment trouver quel Javascript déclenche ou manipule un événement?

Je suis en train d'examiner un bug, en cliquant sur une icône spécifique dans un menu, lorsque la page défile vers le bas, fait revenir la page vers le haut.
Puisqu'il y a cette grande quantité de Javascript autour, je me bats actuellement pour trouver l'extrait de code de JS, qui cause ce comportement impair. J'ai lu this post here, et j'ai découvert la journalisation des événements dans Firebug et inspecté les gestionnaires d'événements dans Chrome, mais cela ne m'a pas vraiment aidé.

J'ai découvert que l'utilisation

$(<my Elem>).on('click', function(event){ 
    event.preventDefault(); 
}) 

Je peux empêcher le défilement, mais je ne ai toujours pas découvert la cause.

Quelqu'un a-t-il d'autres conseils sur la façon de trouver la véritable cause de cela?

+0

Si le suivi des gestionnaires d'événements ne fonctionne pas, vous pouvez rechercher des occurrences de '.scrollTop' dans votre code (il s'agit probablement de la propriété manipulée). pour changer le parchemin) – nils

+2

Etes-vous sûr que le comportement est causé par JavaScript? Des choses comme '' peuvent provoquer le défilement aussi bien lorsque l'événement click n'est pas correct manipulé. – str

+0

Bam, c'est tout! Stupide moi, j'aurais dû être au courant de ça. Pourriez-vous s'il vous plaît ajouter votre commentaire en guise de réponse, pour me permettre d'y revenir? – Windwalker

Répondre

1

Ce comportement peut être dû à plusieurs raisons différentes. L'un d'entre eux qui est souvent négligé est des liens comme <a href="#">Some JavaScript Handler</a>. Lorsque le gestionnaire JavaScript ne gère pas correctement l'événement (par exemple en appelant event.preventDefault(), le lien HTML sera suivi en plus du gestionnaire JavaScript.) La plupart des navigateurs gèrent un lien vers une balise d'ancrage vide # en allant en haut de Ceci peut facilement être évité en utilisant un attribut href vide comme href