jquery click: как проверить, нажата ли кнопка или нет? - PullRequest
0 голосов
/ 21 июня 2011

Как мне не запускать код, если нажата кнопка? Например, этот таймер в моем плагине будет запущен, если предыдущая кнопка не нажата, но я не хочу запускать этот код таймера при нажатии кнопки.

$.fn.run_slide.timer_each = setTimeout(function() {
    $.fn.run_slide.loop_slide(object);
},o.timerEach);

Этот код таймера находится внутри этого куска кода,

next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, o.timerTransition, function(){

    current.animate({opacity: 0.0}, o.timerTransition).removeClass('active last-active');

    $.fn.run_slide.timer_each = setTimeout(function() {
        $.fn.run_slide.loop_slide(object);
    },o.timerEach);


});

Я думал сделать что-то подобное, но я думаю, что это не правильный метод,

if(!button_previous.click)
{
$.fn.run_slide.timer_each = setTimeout(function() {
        $.fn.run_slide.loop_slide(object);
    },o.timerEach);
}

Есть идеи?

Спасибо.

Edit:

обнаружил проблему в моем коде, и это мое решение:

// Check if the next button or previous button is not clicked then fade the current slide.
 if(!button_previous.click) current.animate({opacity: 0.0}, o.timerTransition).removeClass('active last-active');

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Используйте clearTimeout, как показано в этой скрипке .

0 голосов
/ 21 июня 2011

Вы можете остановить выполнение тайм-аута в следующий раз, используя clearTimeout (), передавая в качестве параметра обработчик setTimeout ().

Должно быть примерно так

clearTimeout( $.fn.run_slide.timer_each );

Но я не уверен, что вы поместили обработчик setTimeout в правильное положение.

...