Jquery 在同一元素中单击时停止鼠标移动

Jquery 在同一元素中单击时停止鼠标移动,jquery,mouseenter,mouseleave,Jquery,Mouseenter,Mouseleave,好吧,也许这是一个愚蠢的问题,但我是jquery和javascript的新手,所以我找不到解决方案(也许我的方式不对) 我有一个菜单,可以制作一些。在短时间内为“mouseeenter”和“mouseleave”上的动画制作动画,但它也有“click”功能: -当鼠标继续移动时,一个元素将其“顶部”样式位置移动到另一个位置 -当鼠标熄灭时,同一元素移动到其原始“顶部”样式位置。 -当鼠标点击它时,会发生一些事情(html5部分与css3转换一起滑动) 如果我停留在元素上,并在“mouseente

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

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

所以问题是:如何通过在同一个元素中使用click函数来停止mousenter的传播? 我试过使用.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
});

非常感谢您

请尝试以下鼠标点击:

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

对我来说没有问题。如果单击
#control_a
,它将成功解除
鼠标指针
鼠标移动
事件的绑定。您知道,通过解除鼠标事件的绑定,用户下次将鼠标悬停在
#control_a
上时,
元素
不会移动?这就是你想要的吗?如果没有,不要解开它@Moob,而不是让它绑定(因为你会在鼠标离开时触发动画),我会#元素将在另一个事件中重新绑定,没有问题!好极了你和.住手()是我的救星!除息的