jQuery淡化所有其他图像

5

我使用jQuery编写了这段代码来实现图片淡入淡出效果(但不包括鼠标悬停的那张图片),所有图片同时淡入淡出

$(".playThumb").fadeTo("normal", 1);

$(".playThumb").hover(function() {
    $(".playThumb").each(function() {
        if ( $(this) != $(this) ) {
            $(this).fadeTo("fast", 0.3);
        }
    });
}, function() {
    $(".playThumb").each(function() {
            $(this).fadeTo("fast", 1);
    });
});

<a href="#"><img src="001.jpg" class="playThumb" />
<a href="#"><img src="002.jpg" class="playThumb" />
<a href="#"><img src="003.jpg" class="playThumb" />
<a href="#"><img src="004.jpg" class="playThumb" />

如果有人能帮我将除我鼠标悬停在上面的一张图像以外的所有图像都淡化,那就太好了。
1个回答

16
您可以使用not来过滤掉正在被悬停的元素:
$(".playThumb").fadeTo("normal", 1);

$(".playThumb").hover(function() {
    $(".playThumb").not(this).fadeTo("fast", 0.3);
}, function() {
    $(".playThumb").not(this).fadeTo("fast", 1);
});

1
我很确定在not中不需要将"this"用$()括起来。 - Paolo Bergantino
好的,我现在已经移除了$()。 - moff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接