好吧,也许这是一个愚蠢的问题,但我一般都是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
});
非常感谢
答案 0 :(得分:0)
尝试使用鼠标单击:
$("#control_a").click(function(){
$("#control_a").unbind('mouseleave mouseenter');
$("#element").stop().css('top' , '50%');
// something happens
});