单击同一元素时停止鼠标中心传播

时间:2013-09-26 13:19:04

标签: jquery mouseenter mouseleave

好吧,也许这是一个愚蠢的问题,但我一般都是jquery和javascript的新手,所以我找不到解决方案(也许我的方法不对)。

我有一个菜单可以在短时间内在“mouseeenter”和“mouseleave”上制作一些.animate动画,但它也有“点击”功能:   - 当鼠标继续时,元素将其“顶部”样式位置移动到另一个   - 当鼠标熄灭时,相同的元素移动到其原始的“顶部”样式位置。   - 当鼠标点击它时,会发生一些事情(html5部分与css3过渡滑动) 没问题,如果我留在元素上并在“mouseenter”动画结束后点击它,但如果我在.animate函数结束前快速点击,当click事件传播完成时,.animate仍会影响我的元素并移动它在错误的地方。

所以问题是:如何通过同一元素中的单击函数停止鼠标中心传播? 我尝试使用.unbind,它适用于mouseleave,但不适用于mousenter。

以下是为此问题创建的示例代码:

$('#control_a').bind({
    mouseenter: function(e) {
        $("#element").stop().animate({top: "-=100px"}, 200);
    },
    mouseleave: function(e) {
        $("#element").stop().animate({top: "50%"}, 200);
    }
});
$("#control_a").click(function(){                                               
    $("#control_a").unbind('mouseleave mouseenter');
        $("#element").css('top' , '50%');
    // something happens
});

非常感谢

1 个答案:

答案 0 :(得分:0)

尝试使用鼠标单击:

$("#control_a").click(function(){                                               
    $("#control_a").unbind('mouseleave mouseenter');
    $("#element").stop().css('top' , '50%');
    // something happens
});