-1

我希望单击事件仅在完成先前的执行时才执行。我的代码是

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

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


});
4

2 回答 2

1

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

于 2012-09-11T12:30:39.057 回答
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
    });
}
于 2012-09-11T12:43:48.487 回答