jquery click:如何检查按钮是否被点击?

时间:2011-06-21 15:41:26

标签: jquery jquery-plugins click onclick

如果单击按钮,我怎么能不运行代码?例如,如果未单击上一个按钮,则会触发插件中的此计时器,但是当单击该按钮时,我不想运行此计时器代码。

$.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);
}

有什么想法吗?

感谢。

修改

在我的代码中发现了问题,这是我的解决方案:

// 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 :(得分:0)

您可以通过使用clearTimeout()将setTimeout()处理程序作为参数传递来停止下次执行超时。

应该是这样的

clearTimeout( $.fn.run_slide.timer_each );

但是我不确定你是否将setTimeout处理程序置于一个合适的位置。

答案 1 :(得分:0)

使用clearTimeout,如this fiddle中所示。