【问题标题】:ajax if hover is maintained for 500ms and doesn't fire if hover stops如果悬停保持 500 毫秒,则 ajax 并且如果悬停停止则不会触发
【发布时间】:2012-06-14 11:20:33
【问题描述】:

我想延迟 ajax 调用,直到悬停保持 500 毫秒

obj.hover(function(){ 
var t = setTimeout(function() {
    ajax_search();
}, 500);
}, function(){ 
clearTimeout($(this).data('timeout'));
});

确实会延迟 ajax,但即使我停止悬停它仍然会触发。

它被用于具有许多悬停区域的地图,我想最大限度地减少对用户指示更长悬停区域的 ajax 调用。目前,它会在每次悬停时触发,并且在 heroku/facebook 应用程序上和链式悬停正在扼杀用户的响应。

【问题讨论】:

    标签: jquery ajax hover settimeout delay


    【解决方案1】:

    您没有在悬停目标上设置数据。您正在获取句柄 (t),但在 setTimeout 调用之后没有执行 $(this).data("timeout", t);

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      相关资源
      最近更新 更多