양식의 모든 체크 박스 변경에 대해 jquery $. post 요청을 보냅니다. 내가 원하는 것은 사용자가 여러 개의 쓸모없는 요청을 피하기 위해 하나 이상의 확인란을 빠르게 검사하는 경우 $. post를 500ms 동안 지연시키는 것입니다.
여기
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);
});
이 작동하지 않는 이유 어떤 생각 ...이 $ .post 기능을 제외한 모든 작업을 보인다에서는 setTimeout 기능을 추가 한, 내 코드입니까?
:'타이머를 = window.setTimeout (함수 , 1000); – ipalaus
"}, 1000"이 잘못된 위치에 있지 않습니까? change() 함수 대신에 delay() 함수의 두 번째 인수가되어서는 안됩니까? –
@ElianEbbing @Phil Elian이 말하는 것. 당신의 '1000'을'.change'로 보냅니다. 또한'timer'가'undefined'로 설정되어 있거나'setTimeout'을'id === 0'으로 죽일 수도 있습니다. – Raynos