我希望单击事件仅在完成先前的执行时才执行。我的代码是
$(".next").click(function(){
$(this).parent().find('.overlay').css({'display':'block'});
addContent(options, speed, 1);
});
我希望单击事件仅在完成先前的执行时才执行。我的代码是
$(".next").click(function(){
$(this).parent().find('.overlay').css({'display':'block'});
addContent(options, speed, 1);
});
最简单的方法是在启动任务时取消绑定单击事件处理程序,并在任务完成时再次绑定它。
您需要有某种回调或延迟对象来知道您的 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
});
}