首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery mouseover / mouseleave

Jquery mouseover / mouseleave
EN

Stack Overflow用户
提问于 2015-05-19 13:28:36
回答 2查看 499关注 0票数 1

我不知道到底该找什么,但这是我的问题。

代码语言:javascript
运行
复制
<script>
    function Gbox () {
        var hide = document.getElementById('g-box').style.display = "none";

    }
    Gbox();
    $("#g-plus").mouseover(function () {
        $("#g-box").show(400);  
    });
    $("#g-plus").mouseleave(function () {
        $("#g-box").hide(400);  
    });

</script>

说Jquery的工作没有问题。

唯一的问题是,如果我在#g-plus上快速地来回悬停2次,Jquery运行它的次数是show,hide,show,hide的4倍,当它发生时,它看起来很迟钝。

我怎样才能避免这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 13:32:49

您需要的是.stop()来停止先前的动画

代码语言:javascript
运行
复制
function Gbox() {
    $("#g-box").hide();
}
Gbox();
$("#g-plus").hover(function () {
    $("#g-box").stop().show(400);
}, function () {
    $("#g-box").stop().hide(400);
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="g-plus">g-plus</button>
<div id="g-box">g-box</div>

注意:您可以使用.hover()作为快捷方式注册mouseenter和mouseleave处理程序。

票数 5
EN

Stack Overflow用户

发布于 2015-05-19 13:29:31

代码语言:javascript
运行
复制
$("#g-plus").hover(function () {
    $("#g-box").show(400);  
},function () {
    $("#g-box").hide(400);  
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30327046

复制
相关文章

相似问题

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