자바 스크립트에서 맞춤 슬라이더를 만들고 있는데, 사용자가 슬라이더의 div를 클릭 할 때마다 슬라이더가 X 초 동안 정지해야합니다.매번 setInterval()주기가 더 빨라지는 이유는 무엇입니까?
$(document).ready(function() {
var ciclo;
var index_slide = 1;
function startSlidercicle() {
ciclo = setInterval(function() {
// Slider code goes here
}, 3000);
}
//Here I start the slider animation
startSlidercicle();
//When the user clicks on a div called 'slide', stop the cycle and start again the animation cycle
$('.slide').on('click', function() {
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
});
});
그러나 문제는 내가 클릭하고 슬라이더를 중지하는 것이 매번는,주기가 빨라 시작이다 :
내 코드입니다. 어떻게 해결할 수 있습니까? 이에
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
:
'setTimeout (startSlidercicle, 3000)'을 사용해야합니다 ('startSlidercicle' 다음에 괄호가 없습니다). 그러나 그것은 당신이 묘사하는 것을 야기해서는 안됩니다 ... – bfavaretto
.slide div를 여러 번 클릭하면 그 것을 재현 할 수 있습니다 (http://jsfiddle.net/XdMHz/ 참조). 참조 할 수 없거나 제거 할 수없는 "남은 시간"타이머가 만들어 지므로 경고를 추가해야합니다. – bfavaretto
같은 주제에 대해 몇 가지 질문을 읽었지 만 여러 타이머를 방지하거나 닫는 방법을 분명히하지 못했습니다. – Erzei