好的,也许这是一个愚蠢的问题,但我一般是 jquery 和 javascript 的新手,所以我找不到解决方案(也许我走错了路)。
我有一个菜单,可以在短时间内在“mouseeenter”和“mouseleave”上制作一些 .animate 动画,但它也有“点击”功能: - 当鼠标继续时,一个元素将其“顶部”样式位置移动到另一个- 当鼠标离开时,相同的元素移动到它原来的“顶部”样式位置。- 当鼠标点击它时,会发生一些事情(html5部分滑动css3转换)如果我留在元素上并在“mouseenter”动画结束后点击它,但如果我在.animate结束前快速点击功能,当点击事件传播完成时,.animate 仍然会影响我的元素并将其移动到错误的位置。
所以问题是:如何通过单击功能在同一元素中停止鼠标传播?我尝试使用.unbind,它适用于mouseleave,但不适用于mouseenter。
这是为此问题创建的示例代码:
$('#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
});
非常感谢你