2010-08-15 6 views
0

Je me demandais si quelqu'un pourrait travailler celui-ci comme je l'ai essayé pendant 40 minutes maintenant et cela ne devrait pas être si difficile.Pourquoi ma bascule jQuery ne fonctionne-t-elle pas?

J'ai quelques divs imbriqués comme ceci:

<div> 
<div> 
Some info - <a href='#' class='slick-toggle'>[more info]</a> 
    <div class='slickbox'> 
     <div> 
     More Content... 
      <a href='#' class='slick-toggle2'>see full XML reply</a><br /> 
      <div class='slickbox2'> 
        <div class='xmlOutput'> 
         more content from XML source 
        </div> 
      </div> 
     </div> 
    </div> 
</div> 

Maintenant ce que je veux arriver est quand le lien avec la classe « -bascule lisse » est cliqué sur le Div avec la classe « slickbox "est caché ou show. Dans cette division j'ai un autre lien avec la classe "slick-toggle2" quand on clique dessus Je veux que la div avec la classe "slickbox2" soit cachée ou montrée (quand la page est chargée ces deux divs sont cachés). Vous ne pouvez donc basculer "slick-toggle2" que si "slick-toggle" est affiché. Cela devrait être facile, mais la bascule ne fonctionne que pour le premier DIV. Quelqu'un peut-il voir quel est le problème avec mon jQuery

$(document).ready(function() { 

     $('.slickbox').hide(); 
     $('.slickbox2').hide(); 

     $('a.slick-toggle2').click(function() { 

      $(this).next("div.slickbox2").toggle(400); 
      return false; 
     }); 

     $('a.slick-toggle').click(function() { 

      $(this).next("div.slickbox").toggle(400); 
      return false; 
     }); 

    }); 

Quelqu'un peut-il voir où je vais mal? Je pense que je deviens fou?

VEUILLEZ NOTER QUE j'ai pris le A du lien hypertexte hors du code car il était bloqué?

Répondre

7

Il est parce que le très élément suivant est un <br />, donc au lieu de ceci:

$(this).next("div.slickbox2").toggle(400); 

Vous devez ceci:

$(this).nextAll("div.slickbox2:first").toggle(400); 

.next() obtient la très élément suivant ne si il correspond au sélecteur. .nextAll() passe par tous les frères et soeurs suivants, et vous obtenez le :first qui correspond.

+2

Genius! Merci! –

+1

@ user421020 Acceptez la réponse, alors :) –

Questions connexes