Project ->http://codepen.io/urketadic/pen/YpLgBX
Описание -> Я хочу, чтобы очистить таймаут на эту функцию, если флажок не установлен больше.clearTimeout (вар) не очищая Var тайм-аут
var holder2 = setTimeout(function() {
$("#matrix2").css('display','block'); },26570);
При нажатии матрицы, маленькая лягушка должна начать танцевать после 26 секунд, проблема, если вы отмените режим матрицы и нажмите на кнопку отправить (в 22th второй позволяет говорить), а затем очень быстро включить режим матрицы снова, лягушки начнет танцевать через 4 секунды, а не 26, потому что тайм-аут все еще работает.
Проблема -> Это не работает:
clearTimeout(holder2);
Также пробовал:
holder2.clearTimeout();
Весь код
$("#Confirm").on('click', function() {
if (document.getElementById('matrixcheckbox').checked) {
matrixreset();
$("#unmute").show();
$("#matrix2").css('visibility', 'visible');
player.playVideo();
var holder = setTimeout(function() {
$("#matrix1").css('display', 'block');
}, 1900);
var holder2 = setTimeout(function() {
$("#matrix2").css('display', 'block');
}, 26570);
$("#pi").css('background-image', 'url(' + 'http://i1007.photobucket.com/albums/af198/GoDHanD/My%20FS%20Profile/RedMatrix.gif' + ')');
} else {
matrixreset();
clearTimeout(holder);
clearTimeout(holder2);
}
});
Это, вероятно, проблема охвата, показать весь код, чтобы мы могли видеть, что scope 'holder2' находится в – hardillb
' clearTimeout (holder2); 'правильный путь. Либо 'holder2' недоступен там, где вы пытаетесь его вызвать, либо вам присвоено новое значение. Пожалуйста, прочитайте [mcve]. –
Я обновил весь код и ссылку codepen. –