ajax如果悬停保持500ms并且如果悬停停止则不会触发

时间:2012-06-14 11:20:33

标签: jquery ajax hover settimeout delay

我想延迟ajax调用,直到悬停维持500ms

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

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

它被用于包含大量悬停区域的地图,我想最大限度地减少对用户用较长悬停指示的ajax调用。目前它会针对每一个单独的悬停和heroku / facebook应用程序触发,并且链接的悬停正在杀死用户的响应。

1 个答案:

答案 0 :(得分:1)

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