2010-10-25 5 views
2

J'ai une fonction qui se déclenche lorsque la barre de défilement atteint le fond. Pour une raison quelconque, IE lance l'événement deux fois. Ce n'était pas le cas avant. Je n'ai pas de fonction en double et je n'ai pas le JS déclaré deux fois. C'est bien dans Opera, FF, Chrome. Je ne sais pas pourquoi ça se passe dans IE. Oh comment je déteste M $ et ce navigateur gênant.La fonction jQuery est déclenchée deux fois dans IE ...?

jQuery(document).ready(function(){   
     jQuery(window).scroll(function(){ 
      if (jQuery(window).scrollTop() == jQuery(document).height() - jQuery(window).height()){ 
       scrollPost(); 
      } 
     }); 

    }); 

Editer: En fait, c'est également double dans Safari. Un autre navigateur que je n'aime pas.

+0

Vous dites qu'il ne le faisait pas avant. Avant quoi? –

+0

J'ai changé le fichier et la méthode d'obtention de mon ajax. Il utilise jQuery pur maintenant faire un appel ajax normal. Le problème n'est pas le scrollpost(); fonction que les fonctions ci-dessus appelle. C'est qu'il appelle la fonction de défilement deux fois quand il frappe le fond. Donc, le processus qu'il exécute n'est pas le problème. Je n'ai changé aucun de mes fichiers JS ou version jQuery. –

+0

le problème est probablement dans le wrapper jquery scroll(). Je n'ai pas IE pour le déboguer, le si semble correct et je viens de déclencher scrollPost déclenché une fois dans mon test –

Répondre

3

J'ai trouvé la solution ici.

Jquery scroll hits twice on IE

Apparemment, IE et Safari sont connus pour cette question. J'ai dû utiliser la méthode anti-rebond pour l'empêcher de tirer deux fois. J'ai utilisé dotimeout plugin de Ben Alman et cela a fonctionné parfaitement en corrigeant IE et Safari.

Questions connexes