Я отправляю запрос jquery $.post при любом изменении флажка в форме. Я хочу задержать $.post на 500 мс, если пользователь быстро проверяет более одного флажка, чтобы избежать нескольких бесполезных запросов.
Вот мой код, я добавил функцию setTimeout, которая работает со всем, кроме этой функции $.post...
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$(document).ready(function() {
$('.checkbox').change(function() {
delay(function(){
$.post("/?page_id=4", $("#selectors").serialize(), function(data){
$('#results').html(data);
});
});
}, 1000 );
});
Любая идея, почему это не работает?
timer = window.setTimeout(function, 1000);
- person ipalaus   schedule 04.03.20111000
.change
. Также по умолчаниюtimer
наundefined
, иначе вы случайно убьетеsetTimeout
с помощьюid === 0
- person Raynos   schedule 04.03.2011