使用.delegate使用mouseenter或mouseover为图像兄弟添加动画效果?

时间:2011-08-15 11:57:10

标签: javascript jquery

我使用.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);

        });

如果有人能告诉我实现这种效果的最佳方法,那就太棒了

凯尔

1 个答案:

答案 0 :(得分:2)

if(e.type === 'mouseenter' || e.type === 'mouseover') {

实际上,事件类型永远不会是mouseoverhover仅与mouseentermouseleave绑定。

您可能想要这样做:

$('#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