【问题标题】:JQuery Hover Function TimeoutJQuery 悬停函数超时
【发布时间】:2013-03-04 16:42:15
【问题描述】:

我在 SO 上看到了与此类似的其他问题,但答案并不是我想要的。我对下面代码的问题是关于变量 hide

当前的形式 hide 对第一个悬停函数不可见,但我不想在更高的范围内声明它,因为它在那里没有用处。另外,在更高的范围内声明它需要为每个 li 创建一个不同的变量。

保持这个变量包含这两个函数之间的超时的解决方案是什么?

$('li').hover(function() {
    clearTimeout(hide);
    $('.menu', this).show();
}, function() {
    var menu = $('.menu', this);
    var hide = setTimeout(function() {
        menu.hide();
    }, 500);
});

【问题讨论】:

    标签: javascript jquery hover settimeout


    【解决方案1】:

    您可以将值存储为.data()

    $('li').hover(function() {
        clearTimeout($(this).data('hide'));
        $('.menu', this).show();
    }, function() {
        var menu = $('.menu', this);
        $(this).data('hide', setTimeout(function() {
            menu.hide();
        }, 500));
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      相关资源
      最近更新 更多