2011-02-03 77 views
0

我換出用PHP foreach循環這樣產生的div ...如何交換淡入/淡出動態創建的選擇

<img class="trigger" name="showme-<?php echo $stuff ?> ... > 

<div id="showme-<?php echo $stuff ?>" style="display:none"></div> 

$('.trigger').click(function(){ 
    var num=$(this).attr("name"); 
    $('#'+num).fadeIn(); 

這工作得很好..但我的問題是怎麼做的我不只是淡入淡出這些元素,但也淡出當前坐在那裏,所以我一次只顯示一個showme-var div?因爲我不知道當前顯示的是哪一個,所以我無法使用選擇器來確定哪些人需要淡出。我可以在選擇器中添加通配符「*」還是可以使用父div的.children?

回答

0

如果包裝所有這些淡入/出的div與父元素,那麼你可以簡單地抓住所有的兄弟姐妹:

$('#' + num).fadeIn().siblings().fadeOut(); 

提供的沒有什麼別的當然在同一個div。

+0

ahh兄弟姐妹!謝謝,這正是我所需要的。 – Zac 2011-02-03 01:56:50

0

放在一個公共類上的元素正在消失輸入/輸出,並使用:

<div class="showHide" id="showme-<?php echo $stuff ?>" style="display:none"></div> 
$('.trigger').click(function(){ 
    var num=$(this).attr("name"); 
    var shown = $('#'+num).fadeIn();  //show this one 
    $('.showHide').not(shown).fadeOut(); // hide all except for this one 

最終,最佳的解決方案,將取決於你的實際的標記。如果你提供更多,你會得到更準確的解決方案。