2010-04-19 5 views
0

J'essaie d'utiliser next() pour basculer une div. Le problème est que le "trigger" est dans un div différent de celui que je veux basculer. Un exemple qui fonctionne:jquery next() en dehors de div

$("span.trigger").click(function(){ 
     $(this).next("div.task_description").slideToggle("fast"); 
}); 

<span class="trigger">The trigger</span> 
<div class="task_description "> 
    some content 
</div> 

Mais la façon dont j'ai besoin de la configuration html est:

<div> 
    <span class="trigger">The trigger</span> 
</div> 
<div class="task_description "> 
    some content 
</div> 

Cela ne fonctionne pas ... des suggestions?

Répondre

3

Dans ce cas, vous avez besoin d'un .parent() aussi bien, comme ceci:

$("span.trigger").click(function(){ 
    $(this).parent().next("div.task_description").slideToggle("fast"); 
}); 

Alternativement, si votre imbrication peut changer, vous pouvez aller jusqu'à l'<div> que vous êtes, comme ceci:

$(this).closest("div").next("div.task_description").slideToggle("fast"); 
+0

J'ai réellement div entre le déclencheur et la div toggling ... utilisé nextAll() et tout est parfait .. Merci! – mike

+0

@mike - assurez-vous d'utiliser '.nextAll (". Task_description: first ")' si vous voulez juste le premier de cette classe qui suit! –

Questions connexes