Когда я держу курсор над <td>
, он ждет 900 миллисекунд, а затем отправляет много запросов (я всегда нахожу больше tds за эти 900 мс). Что я делаю неправильно? почему работает только clearTimeout
(с комментариями)?
Моя точка зрения заключается в том, чтобы подождать, прежде чем нажать на сервер, и если пользователь переместит мышь на другое <td>
в этом текущем обратном отсчете (900 мс), предыдущий обратный отсчет будет прерван, а новый произойдет
$(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);
});
});