2011-02-03 38 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 

最终,最佳的解决方案,将取决于你的实际的标记。如果你提供更多,你会得到更准确的解决方案。