0

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

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

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

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

4

1 回答 1

1

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

于 2012-06-14T11:23:32.183 回答