我有四个 li div
,其中包含图片链接(所以他们是四个链接和四个图片 ),但我无法理解为什么悬停功能在这里不起作用。
错误是:
element.hover不是函数:
var element =$("li div")
var element_link = element.find("a");
var element_img = element.find("img");
element_img.css("opacity","0.5");
element_link.each(function(index, element) {
element.hover(
function(){element_img[index].animate({opacity:1}),250},
function(){element_img[index].animate({opacity:0.5}),250}
);
});
如何解决此问题?
答案 0 :(得分:3)
您不需要在jQuery元素集合上使用each()
。您只需使用以下代码将悬停应用于所有element_link
s:
element_link.hover(
function(){$(this).siblings('img').animate({opacity:1}),250},
function(){$(this).siblings('img').animate({opacity:0.5}),250}
);
答案 1 :(得分:3)
我这样解决了:
var element =$("li div");
var element_link = element.find("a");
var element_img = element.find("img");
element_img.css("opacity","0.5");
element_link.each(function(index, element) {
$(element).hover(
function(){$(element_img[index]).animate({opacity:1},250)},
function(){$(element_img[index]).animate({opacity:0.5},250)}
);
});
感谢Wolf和Amit(动画函数也有错误)。