jquery淡入多个div

时间:2013-01-29 09:37:26

标签: jquery fadein

我从我的数据库加载了多个图像,并且在每个图像的底部我有一个共享按钮...当单击共享按钮时,会出现一个带有不同共享选项的新div。

我的问题是,当我按下分享按钮时......页面上的所有图像都会显示隐藏的div,而我想只显示一张图片,而不是所有图像。

这就是我现在所拥有的:

HTML

<div id="wrapper">
    <a href="<?php echo $link; ?>"><img class="img-box" src="/images/<?php echo $img; ?>.jpg"></a>
    <div class="share-holder" name="<?php echo $img_id; ?>">share</div>
    <div class="share-fadein"></div>
</div>

CSS

.share-fadein{
    width:210px;
    height:40px;
    background-color:#eee ;
    display:none;
}

SCRIPT

$(document).ready(function(){
    $(".share-holder").click(function(){
        $(".share-fadein").fadeIn();
    });
}); 

谢谢

4 个答案:

答案 0 :(得分:1)

将您的JS更改为:

$(document).ready(function(){
   $(".share-holder").click(function(){
   $(this).next().fadeIn();
});
}); 

答案 1 :(得分:1)

$(document).ready(function(){
   $(".share-holder").click(function(){
    $(this).closest('.share-fadein').fadeIn();
 });
}); 

获得与点击的.share-fadein最接近的.share-holder

参见closest() jQuery。

答案 2 :(得分:1)

如果使用jQuery 1.4.3+更好地使用

$(document).ready(function(){
  $(this).delegate(".share-holder", "click", function() {
    $(this).next().fadeIn();
  });
}); 

Delegate更好,因为每个元素不是“点击”侦听器,而是有1个侦听器 - 因此内存使用率要低得多。

答案 3 :(得分:0)

使用这种方式:http://jsfiddle.net/9Wsfc/

$(".share-holder").click(function(){
    $(this).next(".share-fadein").fadeIn();
});     //--^^^^^^^^^^^^^^^^^^^^-------this will only fadesin the ".share-fadein"