jQuery 스크립트가 몇 개 div로 이동했습니다. 코드는 다음과 같습니다. 해결해야 할 두 가지 문제가 있습니다..click (jQuery) 일 때 setTimeout 일시 중지
사용자가 탭을 클릭 할 때 타이머를 재설정하거나 추가하는 중입니다. 현재주기에 따라 슬라이드가 다음 슬라이드로 즉시 전환 될 수 있습니다.
사용자가 특정 슬라이드 위로 마우스를 가져 가면 타이머를 일시 중지 (즉, 시간 초과를 지우고 다시 시작)합니다.
다음을 달성하기 위해, 나는에서는 setTimeout에게 변수 ($ theTimeout)를주고 사항 clearTimeout에 시도 후 다시 show_cycle_elem()를 실행합니다. 얼마나 많은 다른 방법을 시도해도 (클릭과 같은 다른 이벤트를 함수에 던짐으로써 setTimeout 다음에 즉시 호출하는 등) 완전히 올바르게 작동하지는 않았다.
아이디어가 있으십니까?
$(document).ready(function(){
var theId = 0;
function navClass(it){
$('#hero nav a').removeClass('over');
$(it).addClass('over');
}
$.fn.cycle = function(timeout){
var $all_elem = $(this);
show_cycle_elem = function(){
if(theId == $all_elem.length) theId = 0;
$all_elem.hide().eq(theId).fadeIn();
navClass('#a' + theId);
var $theTimeout = setTimeout(function(){show_cycle_elem(++theId)}, timeout);
}
show_cycle_elem();
}
$('div.hero_slide').cycle(10000);
$('#hero nav a').click(function(party){
party.preventDefault();
theId = this.id.substr(1);
navClass($(this));
$('.hero_slide').hide();
$('#hero' + theId).fadeIn();
});
});
감사합니다.
아마도 오늘은 좋지 않지만 클리어 타임 아웃은 어디에 있습니까? –
나는 타임 아웃을 지우려고 시도했던 것들을 포함하지 않았다. 내 질문은, 사실, 어디서 어떻게'clearTimeout ($ theTimeout) '을 사용해야합니까? – alexjewell
어디서나 $ theTimeout을 사용하려면 전역으로 선언해야합니다. –