2014-12-01 1 views
0

JQuery 슬라이더를 만들었지 만 시간 초과가 해결되지 않아 슬라이드 선택이 작동하지 않습니다.글로벌 함수 임에도 불구하고 변수의 clearTimeout을 사용할 수 없습니까? JQuery 응답 슬라이더

이 함수는 전역 함수이지만 함수를 실행할 때 지워야합니다.

$('.selector').click(function(){ 

var $slideID = $(this).attr('id'); // what slide to go to 
var $currentSlideID = $('.slider li').attr('id'); //what slide is visible 
var goTo = $slideID - $currentSlideID; 

clearTimeout(timer); //clear timer 
$('.slider ul').animate({'right' : goTo + '00%'},500); 
}); 

그 페이지에 모두 넣어 너무 오래 내가 JSBin에 좋았을 있도록 : 제한 시간은 선택이 작동하지 않는 설정,하지만 수행한다

http://jsbin.com/tuyega/7/edit?js,output#J:L28

되면 전에.

답변

2

전역 변수를 설정하지 않았습니다. 네가 정의한 네, 당신은 또한 문서의 범위 안에서 하나를 정의했습니다. var를 버리십시오.

var timer; //create global var <--yep this is global 

$(document).ready(function(){ 

    //set and start slider 
    var timer = setTimeout(function(){slideNext();},5000); <--And not global 

그리고 다른 문제가 애니메이션 코드입니다

$('.slider ul').animate({'right' : goTo + '00%'},500); 

$('.slider ul').animate({'left' : -goTo + '00%'},500); 
+0

완벽 ......................... 잘 했음 – ashkufaraz

3

당신의 setTimeout 할당 앞의 var해야 잘못된 경우에만 범위 내에서 존재하는 변수를 생성 $ (document) .ready 콜백 중. 이제 var 키워드를 제거하면 slide0ext() 및 slidePrev()에 노출되는 전역 timer 변수에 setTimeout 반환 값이 할당됩니다.

+0

고마워요, 불행히도 여전히 문제가있는 것처럼 보이지만 이해할 수 없습니다. 그것을보십시오, 당신은 그것을 시험하고 작동 했습니까? – christoflee

관련 문제