jquery只有在完成上一次执行后才执行click事件

时间:2012-09-11 12:29:12

标签: jquery

我希望click事件只有在完成上一次执行后才能执行。我的代码是

$(".next").click(function(){

$(this).parent().find('.overlay').css({'display':'block'});
addContent(options, speed, 1);


});

2 个答案:

答案 0 :(得分:1)

最简单的方法是在启动任务时只需unbind click事件处理程序,并在任务完成时再次绑定它。

答案 1 :(得分:0)

您需要使用某种回调或延迟对象来了解addContent函数何时完成,然后执行以下操作:

$(".next").on('click', doStuff);

function doStuff() {
    $(".next").off('click', doStuff);
    $(this).parent().find('.overlay').css('display', 'block');
    addContent(options, speed, 1, function() {  //<-- callback
        $(".next").on('click', doStuff);
    });
}

function addContent(options, speed, num, callback) {
    options.animate({left: num}, speed, function() {
        callback();  //<-- call callback when function is completed
    });
}