2011-12-11 3 views
1

J'ai implémenté ceci sur mon site à partir d'une question précédente mais pour une raison quelconque sur Firefox et IE la liste déroulante défile tout seul. Je ne peux pas comprendre pourquoi!Drop Down Box continue de faire défiler vers le haut

Cliquez simplement sur le fil d'actualité et lorsque la boîte tombe en panne, elle tombe automatiquement en panne. C'est censé tomber et si je clique sur newfeed à nouveau ou à l'extérieur, c'est censé tomber. Mais ça ne fait pas ça, ça remonte tout simplement.

J'utilise le JavaScript. Qu'est-ce qui se passe ici?

$('#bottom').click(function() { 
    $('#content').slideDown(); 
}); 

$(document).click(function(e) { 
    if (e.target.id !='bottom') { 
     $('#content').slideUp(); 
    } 
}); 

Répondre

4

Changer votre gestionnaire d'événements #bottom un peu pour empêcher la formation de bulles de l'événement click tout le chemin jusqu'à la document:

//it is important to declare the `event` variable as a parameter of this anonymous function so it can be accessed inside the function 
$('#bottom').click(function(event) { 
    event.stopPropagation(); 
    $('#content').slideDown(); 
}); 

Qu'est-ce qui se passe avec votre code est que le gestionnaire d'événements pour l'#bottom L'élément est en train d'être déclenché, puis le gestionnaire d'événements pour cliquer sur les document déclenche l'événement click. event.stopPropagation() empêchera l'événement de bouillonner.

Docs pour event.stopPropagation(): http://api.jquery.com/event.stoppropagation/

+0

Ok je suis allé de l'avant et l'ai fait !! Cela fonctionne du côté de mon ordinateur mais quand téléchargé sur mon serveur, il a toujours cette erreur sur firefox et tel? – mystycs

+0

Ou peut-être que je devrais effacer le cache? – mystycs

+0

J'ai compris !!! Ça marche! – mystycs

Questions connexes