2015-12-31 6 views
1

У меня есть следующий код. Это то, что я пытался очистить интервал, но это не сработало. Пожалуйста, помогите мне.clearInterval() не работает javascript

$(document).ready(function(){ 
    var intervalId; 
    $(window).focus(function(){ 
     var intervalId = setInterval(function(){ 
      console.log('working'); 
     }, 5000); 
    }); 

    $(window).blur(function(){ 
     clearInterval(intervalId); 
    }); 
}); 
+0

@NahuelIanni Вопрос в порядке приятель. Отлично. Что в этом плохого? –

+1

@PraveenKumar Посмотрите на сделанные изменения. Это всего лишь фрагмент кода. Даже если код был прав, «не работает» без четкого указания о том, почему он не работает или что требуется для ожидаемого/текущего поведения. –

ответ

3

Не переобъявить intervalId, то становится локальную область видимости функции focus:

$(window).focus(function() { 
    intervalId = setInterval(function() { 
     console.log('working'); 
    }, 5000); 
}); 

Рассмотрим эту часть:

$(document).ready(function() { 
    var intervalId; 
    $(window).focus(function() { 
     // intervalId is not the same as the `window.intervalId` 
     // The scope changes. 
     var intervalId = setInterval(function() { 
//------^^^---------- Remove this var. 
     }); 
    }); 
}); 
+0

@AhsanKhan Я обновил ваш вопрос, добавив в него текст. Надеюсь, что это хорошо для вас, и, пожалуйста, следуйте этим же для последующих вопросов. ':)' –

+0

@AhsanKhan Просто добавьте 'intervalId =' в начало. –

+0

@AhsanKhan Можете ли вы создать скрипку и объяснить ее как новый вопрос? Будет лучше для всех? –