当在Jquery中盘旋时,多个图像元素都会褪色。

我在将淡入淡出仅应用于具有相同ID的页面上的一个元素时遇到问题。

首先我将图像淡化到60%,然后在hover时我希望它只有100%的图像。 这部分有效,但它将效果应用于页面上的每个元素。

// Fading images $(document).ready(function(){ $('.mainArticle img').fadeTo('slow', 0.6); $('.mainArticle img, .articleContainer').hover(function(){ $(this).find('.mainArticle img, .articleContainer').stop(true,true).fadeTo("slow", 1.0); },function(){ $(this).find('.mainArticle img, .articleContainer').stop(true,true).fadeTo("slow", 0.6); }); }); 

另外我知道如果CSS可以做到这一点,但尽可能兼容。

希望你们能帮忙,

干杯,

汤姆

您再次find()相同的元素。 $(this)是hover元素,所以你可以将它用于你的hover处理程序:

 $('.mainArticle img, .articleContainer').hover(function(){ $(this).stop(true,true).fadeTo("slow", 1.0); },function(){ $(this).stop(true,true).fadeTo("slow", 0.6); }); 

但是,我想我明白你要做什么,并且取决于你的HTML(如果你可以发布你的HTML会更容易),你可能想要将它改为这样的东西:

 $(function(){ $('.mainArticle img').fadeTo('slow', 0.6); $('.articleContainer').hover(function(){ $(this).find('.mainArticle img').stop(true,true).fadeTo("slow", 1.0); },function(){ $(this).find('.mainArticle img').stop(true,true).fadeTo("slow", 0.6); }); }); 

只有一个图像褪色: jsFiddle

随着多个图像淡出: jsFiddle

如何使用$(this)而不是$(this).find(’。mainArticle img,.articleContainer’)?

您正在选择与该选择器匹配的每个元素,但由于您已经hover了一个,您可以使用$(this)并在那里执行更改。