2010-04-22 6 views

Répondre

4

Essayez de déplacer le code jQuery pour div.sidenavOff à l'intérieur du ready défintion, comme si

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a").click(function(event){ 
      alert("Thanks for visiting!"); 
     }); 
     $("div.sidenavOff").mouseover(function(){ 
      $(this).removeClass().addClass("sidenavOver"); 
     }).mouseout(function(){ 
      $(this).removeClass().addClass("sidenavOff");  
     }); 
    }); 

</script> 
+0

Cela a fonctionné! Est-ce que chaque chose de jQuery doit être dans la fonction prête? – Strawberry

+2

Si vous allez travailler avec le DOM ou vous avez vos scripts dans la tête. Vous devez soit l'exécuter dans $ (document) .ready() ou déplacer votre script vers le bas de la page où il peut être exécuté après que le DOM a été chargé sur la page. – RedWolves

0

Vous devez placer les appels à .mouseover et .mouseout dans votre bloc $(document).ready(function() {.... Comme vous l'avez, lorsque le sélecteur $("div.sidenavOff") est appelé, ces éléments n'existent pas encore et aucun gestionnaire n'est attaché. Les déplacer dans document.ready les appellera après le chargement des éléments.

0

vous pouvez également faire grincer comme

$(document).ready(function(){ 
    $("div.sidenavOff").mouseover(
    function(){ 
     $(this).toggleClass("sidenavOver").toggleClass("sidenavOff",true); 
    } 
    ) 
} 
) 

il a les mêmes fonctionnalités que l'exemple de Jonathan, mais il est moins de code à écrire :)

Questions connexes