i am using jquery function setinterval and than clearinterval to clear it.. but i the clearinterval is not working .. here is my code.
$('#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
}
});
none of these tries are working
i am using jquery function setinterval and than clearinterval to clear it.. but i the clearinterval is not working .. here is my code.
$('#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
}
});
none of these tries are working
Share Improve this question asked Jun 5, 2014 at 5:33 M Ikram ZafarM Ikram Zafar 1501 gold badge3 silver badges13 bronze badges 1- Understanding variable scope in Javascript is difficult at first, but once you get it, it's hard to ever think differently. – oliverseal Commented Jun 5, 2014 at 5:52
2 Answers
Reset to default 7Make your timer variable outside the function.
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
}
});
You need to use a global variable. If you use a local variable, each click handler invocation has its own copy of the variable.
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
}
});