首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止鼠标中心在同一元素中的单击传播

问停止鼠标中心在同一元素中的单击传播
EN

Stack Overflow用户
提问于 2013-09-26 13:19:03
回答 1查看 794关注 0票数 1

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

我有一个菜单,它可以在短时间内对"mouseeenter“和"mouseleave”进行一些.animate动画,但是它也具有“单击”功能:-当鼠标继续运行时,一个元素将其"top“样式位置移动到另一个--当鼠标离开时,相同的元素移动到它原来的"top”样式位置。-当鼠标单击它时,会发生一些事情(html5部分滑过css3转换),如果我停留在元素上,然后在“鼠标中心”动画结束后单击它,那么没有问题,但是如果我在.animate函数结束之前快速单击,当单击事件传递结束时,.animate仍然会影响我的元素并将其移动到错误的位置。

因此,问题是:如何通过在同一个元素中使用click函数来阻止mousenter传播?我试过使用.unbind,它适用于mouseleave,但不适用于mousenter。

下面是为这个问题创建的示例代码:

代码语言:javascript
复制
$('#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
});

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-26 13:36:13

试一下鼠标点击:

代码语言:javascript
复制
$("#control_a").click(function(){                                               
    $("#control_a").unbind('mouseleave mouseenter');
    $("#element").stop().css('top' , '50%');
    // something happens
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19029453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档