javascript - 清除setTimeout

标签 javascript jquery timeout

我对 javascript/jquery 不太感兴趣,但我想做的就是简单地向 mouseenter 函数添加一个超时,我不能做任何戏剧,但我也想做如果用户在超时到期之前离开元素,则清除超时 - 主要是为了允许光标跳过触发元素。

代码如下(mouseenter 有效,mouseleave 有效,但不清除超时):

    $(document).ready(function() {

    var timeout;

    $('#mainMenu ul li').mouseenter(function() {
        var dropTab = 'ul.' + this.id + 'Dropdown';
        timeout = setTimeout( function(){ 
            $(dropTab).slideToggle("fast") }, 500
            );
    }); 

    $('#mainMenu ul li').mouseleave(function() {
        clearTimeout(timeout);
        var dropTab = 'ul.' + this.id + 'Dropdown';
        setTimeout( function(){ 
            $(dropTab).slideToggle("fast") }, 250
            );
    }); 
   });  

最佳答案

也许您可以尝试使用.hover()。这个例子对我有用:http://jsbin.com/egaho3/edit

关于javascript - 清除setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429154/

相关文章:

Oracle:设置查询超时

timeout - MockWebServer 响应延迟 - 测试超时

javascript - jQuery - 选择框上的取消选择选项不能正常工作

javascript - JQuery:如何使用 jQuery 检测移动宽度并将我的 css 更改为它?

javascript - 如何用索引替换div中的字符串

javascript - 关闭选项卡时自动移至下一个/上一个 UL LI 选项卡

javascript - 正则表达式查找引号之间的所有值

javascript - 如何将 JSON 字符串转换为 javascript 中的函数?

jquery - 在一页上显示多个依赖的Python模型

sql-server - 为什么 SSRS 所基于的存储过程在几秒内返回结果时会报告超时?