2014-06-05 84 views
1

我正在使用jquery函數setinterval和clearinterval清除它..但我的clearinterval不工作..這是我的代碼。clearInterval不工作在jquery

$('#autoslide').click(function(){ 

    if($('#autoslide').is(':checked')){ 
     var interval = setInterval(function() { 
     $('.magazine').turn('next'); 


    }, 2000); 
    }else 
    { 

     //stopinterval(interval) 
     clearInterval(interval); 
     //window.clearInterval(interval); 
    // interval = null 
    } 
}); 

沒有這些嘗試都工作

+0

瞭解JavaScript中的變量範圍起初很困難,但是一旦你弄明白了,就很難有不同的想法。 – oliverseal

回答

5

使函數外的定時器變量。

var interval; 
$('#autoslide').click(function(){ 

if($('#autoslide').is(':checked')){ 
    interval = setInterval(function() { 
    $('.magazine').turn('next'); 


}, 2000); 
}else 
{ 

    //stopinterval(interval) 
    clearInterval(interval); 
    //window.clearInterval(interval); 
// interval = null 
} 
}); 
2

您需要使用全局變量。如果您使用本地變量,則每個點擊處理程序調用都有自己的變量副本。

var interval; 
$('#autoslide').click(function(){ 

    if($('#autoslide').is(':checked')){ 
     interval = setInterval(function() { 
     $('.magazine').turn('next'); 


    }, 2000); 
    }else 
    { 

     //stopinterval(interval) 
     clearInterval(interval); 
     //window.clearInterval(interval); 
    // interval = null 
    } 
}); 
+0

謝謝你的幫助 –