0

这是我的图像的 HTML:

<img id="polaroid1" class="polaroid" onclick="fadeImages(this)" src="images/polaroid1.png">
<img id="polaroid2" class="polaroid" onclick="fadeImages(this)" src="images/polaroid2.png">
<img id="polaroid3" class="polaroid" onclick="fadeImages(this)" src="images/polaroid3.png">

在用户单击这些图像中的任何一个后,它会调用 fadeImages() 函数。这是我的 JavaScript 和 jQuery:

function fadeImages(e) {
    var clickedImage = $(e).attr('id');

    $('img').each(function() {
        if($(this).attr('id') != clickedImage) {
            $('img').animate({opacity: 0}, 500);
        }
    });
 }

基本上,我希望所有图像,但点击的图像淡出,但我不知道如何将点击的图像 ID 传递给“每个()”函数。有任何想法吗?

4

2 回答 2

2

在每个图像上绑定一个单击事件,该事件会淡化它的所有兄弟元素。

$('img.polaroid').on('click', function(event) {
  $(this).siblings('.polaroid').animate({opacity: 0}, 500);
});
于 2013-01-10T23:51:24.030 回答
1
function fadeImages(e) {
    $('.polaroid').not(e).animate({opacity: 0}, 500);    
}

一个更好的方法是删除onclick你的图像并使用 jQuery 的力量......

像这样...

$(function(){
    var $imgs = $('.polaroid');
    $imgs.click(function(){
         $imgs.not(this).animate({opacity: 0}, 500);
    });
})
于 2013-01-10T23:49:58.627 回答