微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery hover和setTimeout / clearTimeOut

我正在尝试用子菜单菜单.
这是我想要做的.

在悬停链接(#mylink)时,我想在它下面显示一个div(让我们称之为“#submenu”).
在鼠标离开此链接时,想要在5秒后执行一个功能.

在这个5秒的间隔中,如果我悬停我的div(#submenu)我想要clearTimeout.
所以这个div在5秒后不会消失.

这是我的代码

$(document).ready(function()
{
    $("#mylink").hover(
        function ()
        {
            $('#submenu').show();
        },function()
        {
            var timer = setTimeout(function(){$('#submenu').hide();},5000);
        }
    );

    $("#submenu").hover(
        function ()
        {
            clearTimeout(timer);
        },function()
        {
            $('#submenu').show();
        }
    );
}

解决方法

SLaks有正确的答案,但要详细说明,你可以将var timer放在函数处理程序之外.请注意,此示例不会使计时器成为全局变量 – 它只是扩大其范围,以便所有处理程序都可以使用它.

$(document).ready(function(){
    var timer;
    $("#mylink").hover(
        function(){
            $('#submenu').show();
        },function(){
            timer = setTimeout(function(){$('#submenu').hide();},5000);
        }
    );

    $("#submenu").hover(
        function(){
            clearTimeout(timer);
        },function(){
            $('#submenu').show();
        }
    );
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐