2010-03-29 5 views
0

Quelqu'un peut-il expliquer pourquoi le jquery suivant déclenche uniquement le 2ème événement toggle et comment le réparer? Plus précisément, chaque fois que je clique sur l'élément < imbriqué, il affiche l'alerte "2ème clic".Problème de jquery avec l'événement de bascule uniquement sur le 2ème clic

J'ai testé le sélecteur pour m'assurer qu'il sélectionnait l'élément correctement et c'est ce qu'il fait, ou du moins il a inséré une classe sans aucun problème.

Le sélecteur sélectionne le dernier nœud de la liste non ordonnée qui a un point d'ancrage.

$("#nav li:not(:has(li)) a").toggle(function() { //1st click 
       alert("1st Click"); 
     }, function() { //2nd click 
      alert("2nd Click"); 
     }); 

Nested la structure HTML qui échoue:

<ul id="nav"> 
    <li> 
     <span>stuff</span> 
     <a href="#">Cat 1</a> 
     <ul> 
      <li> 
       <span>stuff</span> 
       <a href="#">Subcat1</a> 
       <ul> 
        <li> 
         <span>Stuff</span> 
         <a href="#">Subcat Details</a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

Cependant, cela fonctionne bien et les incendies à la fois cliquez sur Événements:

<ul id="nav"> 
    <li> 
     <span>stuff</span> 
     <a href="#">Cat 1</a> 
    </li> 
</ul> 
+0

Fonctionne pour moi: http://www.jsfiddle.net/RqwPr/ – Matt

+0

u sérieux? ... merde ... doit avoir d'autres problèmes – Ronedog

+0

@Ronedog - Vous avez d'autres gestionnaires d'événements attachés à ceux '' éléments? –

Répondre