我使用.delegate来淡化所选图像同级的不透明度,我编写了一个if语句,用于确定事件类型是鼠标悬停还是鼠标中心然后执行动画。我的问题是||因为我不确定如何才能真正写出它是否有效?
$('#holder').delegate('#holder > .img', 'hover', function(e) {
var $image = $(this);
var $imageSiblings = $image.siblings();
if(e.type === 'mouseenter || mouseover') {
$imageSiblings.stop().animate({ 'opacity' : 0.8 }, 200);
} else {
$imageSiblings.stop().animate({ 'opacity' : 1 }, 200);
}
console.log(e.type);
});
如果有人能告诉我实现这种效果的最佳方法,那就太棒了
凯尔
答案 0 :(得分:2)
if(e.type === 'mouseenter' || e.type === 'mouseover') {
实际上,事件类型永远不会是mouseover
。 hover
仅与mouseenter
和mouseleave
绑定。
您可能想要这样做:
$('#holder').delegate('#holder > .img', 'mouseenter mouseover', function(e) {
$(this).siblings().stop().animate({ 'opacity' : 0.8 }, 200);
}).delegate('#holder > .img', 'mouseleave', function(e) {
$(this).siblings().stop().animate({ 'opacity' : 1 }, 200);
});
但我认为你甚至不需要mouseover
。