1

好的,也许这是一个愚蠢的问题,但我一般是 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
});

非常感谢你

4

1 回答 1

0

试试这个鼠标点击:

$("#control_a").click(function(){                                               
    $("#control_a").unbind('mouseleave mouseenter');
    $("#element").stop().css('top' , '50%');
    // something happens
});
于 2013-09-26T13:36:13.513 回答