jQuery悬停在多个项目上

时间:2012-06-29 17:49:26

标签: jquery

所以我有四个圆圈彼此相邻,当你将鼠标从一个移动到另一个时,此代码会激活。但是我只希望它在你离开/移开任何一个圆圈时激活,而不是当你从一个圆圈移动到另一个圆圈时激活。谢谢大家!

 $('.circle').hover(
    function () {
        $(this).parent().animate({marginLeft: '-=25px'}, 1000);
    },
    function () {
        $(this).parent().stop(true, true).animate({marginLeft: '+=25px'}, 1000);
    }
 );

2 个答案:

答案 0 :(得分:1)

看看这个小提琴...... http://jsfiddle.net/WxNdN/3/

e.relatedTarget应该为您提供已输入或离开的元素。在开始制作动画之前,请检查它的类以查看它是否为圆形。

$('.circle').hover(
    function (e) {

        if(!$(e.relatedTarget).hasClass('circle'))
        {
            console.log('entering');
        }
    },
    function (e) {

        if(!$(e.relatedTarget).hasClass('circle'))
        {
            console.log('leaving');
        }
    }
 );​

答案 1 :(得分:0)

没有看到html,我猜你需要将所有的圆类元素包装在容器中,然后将悬停事件放在容器上。像

这样的东西
<div id="container">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
</div>

然后

$('#container').hover(functions...)

然后你可能不得不改变$(this).parent()但是如果没有看到你当前的HTML结构就很难说。