如何交换动态创建的选择器的fadeIn / fadeOut

时间:2011-02-03 00:53:28

标签: javascript jquery

我正在交换使用像这样的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吗?

2 个答案:

答案 0 :(得分:0)

如果你用父元素包装所有这些fadeIn / Out div,那么你可以简单地抓住所有兄弟姐妹:

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

如果在同一个div中没有​​别的东西。

答案 1 :(得分: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

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