2015-10-16 3 views
1

У меня есть простой кусок кода, который выполняется одним нажатием кнопки, но мне нужно обнаружить двойной щелчок (требуется только один клик), но мне нужно предупредить о двух или более щелчки). У меня есть функция setTimeOut, чтобы сделать паузу на секунду, а затем перейдите - но код, который у меня есть, который должен очистить эту функцию, не работает, он выполняет alert(), но не останавливает функцию setTimeOut!JQuery clearTimeOut не останавливается setTimeOut не работает

$('.badge').on('click','#badge', function() { 
    Click = Click + 1 
    ButtonClick() 
    if ($.isNumeric($(this).text())) {  
     $(this).css("background-color","#006400"); 
     BadgeNo = $(this).text() 
     if (Click == 1) { 
      var timeOut = setTimeout(function(){     
       $(this).css('background-color','#568bc1') 
       $('.badge').hide() 
       $('.hs').show() 
       $('#numberplate').text('') 
      }, 1000); 
     } else if (Click > 1) { 
      clearTimeout(timeOut); 
      alert("Please only select ONE badge number"); 
      CheckBadge();     
     } 
    } 
}); 

Я принимаю участие в какой-либо форме ошибки школьника здесь? Я просто не понимаю, почему это не остановит таймаут.

ответ

3

Ваш var timeOut выходит за рамки, когда снятия с охраны:

var timeOut = false; 
$('.badge').on('click','#badge', function() { 
    Click = Click + 1 
    ButtonClick() 
    if ($.isNumeric($(this).text())) {  
     $(this).css("background-color","#006400"); 
     BadgeNo = $(this).text() 
     if (Click == 1) { 
      timeOut = setTimeout(function(){     
       $(this).css('background-color','#568bc1') 
       $('.badge').hide() 
       $('.hs').show() 
       $('#numberplate').text('') 
      }, 1000); 
     } else if (Click > 1) { 
      if (timeOut) 
       clearTimeout(timeOut); 
      alert("Please only select ONE badge number"); 
      CheckBadge();     
     } 
    } 
}); 

незначительные изменения только на сферу переменной timeOut и его инициализации или не будь.

+0

Большое спасибо @Axel Amthor - НИКОГДА НЕ СОБИЛОСЬ, что это для меня, но это хорошая кривая обучения, видя, насколько это должно быть. Ура! – Hyperjase

Смежные вопросы