jQuery를 사용하여 빌드 된 UI 탭에서 작업하고 있습니다. 한 가지 문제를 제외하고는 모두 작동합니다. 트리거 ("클릭")를 수행하는 함수를 실행하는 setInterval을 수행하여 5000 밀리 초 후에 다음 탭으로 이동했습니다. 그것은 각 탭을 통해 잘 실행됩니다, 문제는 사용자가 탭을 수동으로 클릭하면 setInterval에 대한 타이머가 0에서 다시 시작되지 않는다는 것입니다. 예를 들어, 사용자가 0 밀리 초에 tab1에서 시작하여 tab2를 클릭하면 2000 밀리 초이면 setInterval은 0으로 돌아 가지 않고 2000에서 시작하여 5000 밀리 초로 실행되고 이후에 tab3으로 이동합니다. 왜 그런 일이 일어 났는지 이해합니다. clearInterval()을 수행하고 완전히 새로운 setInterval()을 만들지 않고 setInterval 타이밍을 다시 시작할 수있는 방법이 있는지 궁금합니다. 모든 통찰력은 인정 될 것이다. 답장에 대한Javascript/jQuery (clearInterval없이)에서 setInterval() 다시 시작
업데이트
감사합니다 - 나는 내가 위해 clearInterval 완전히 setInterval을 중지 할 수있는 방식으로 코드를 작성하는 방법에 문제가 있었기 때문에 위해 clearInterval이었다 사용하여 피하려고 한 이유. 코드는 사용자가 탭을 클릭 할 때마다 추적하도록 설정됩니다. 문제는 자동 변경 기능이 트리거 ('클릭')를 사용하므로 탭이 자동 변경 될 때 작성한 clearInterval 함수를 실행한다는 것입니다. 그 자체만으로도 꽤 잘 돌아가는 것처럼 보이지만 일단 사용자가 탭을 클릭하면 setInterval은 비정상적으로 동작하고 예기치 않게 탭을 전환합니다. 나는 몇 가지 setInterval이 한 번에 실행되고 있다고 생각한다. 코드를 보자. (이미 짐작하지 못했다면, 나는 javascript/jquery에서 꽤 새로운 것이다.) 기능적이기 때문에 부품을 주석 처리했지만, 의도 한대로 작동하지는 않습니다 (첫 번째 게시물에서).
// auto change tabs
if(options.interval) {
function timerCom() {
if(!$(".controller").hasClass('paused')) {
var i = $(".tab-current > a").attr("rel");
//alert(i);
if(i == 3) {i = 0};
$container
.find('a')
.eq(i)
.trigger('click');
}
}
//$("#promo-items > li > a").click(function() {
//var timer;
//if(timer != null) {clearInterval(timer);}
timer = setInterval(timerCom, options.interval);
//});
}
안녕하세요!추가 정보를 제공해야하는 경우 질문을 편집하십시오. 답변에 대한 특정 질문에 대한 설명을 사용하십시오. SO는 포럼이 아니므로 응답 필드는 질문에 대한 답변을 위해 엄격하게 예약되어 있습니다. –