0
<td>
をホバーすると、900ミリ秒待ってから、多くのリクエストが送信されます(これらの900ミリ秒では、常により多くの時間が表示されます)。私は間違って何をしていますか?なぜclearTimeout
(コメントされました)のみが機能しますか?ajaxリクエストを送信する前の遅延は機能しません
私のポイントは、サーバを打つ前に、この実行中のカウントダウン(900ms)内の別の<td>
にユーザ移動マウスは、前のカウントダウンが中止され、新しいものはあなたがtimer
を保存する必要があります場所
$(function(){
var isLoading = false;
$("td").hover(function(){
var x = parseInt(0);
var position = $(this).attr('id');
clearTimeout(timer);
var oID = $(this).attr('id');
var oData = $(this);
var timer = setTimeout(function(){
if (position == oID&&!isLoading)
{
clearTimeout(timer);
$.ajax({
beforeSend: function(xhr){ var isLoading = true; },
url: 'ajax.php?what=click&position='+position,
success: function(data){
$('#hovercard').css(oData.offset());
$('#hovercard').show();
$('#hovercard').html(data);
}
});
}
}, 900);
// this only works -> clearTimeout(timer);
});
});