仅当jquery已完成上一次执行时才执行click事件
我希望单击事件仅在它已完成上一次执行时执行。我的代码是仅当jquery已完成上一次执行时才执行click事件,jquery,Jquery,我希望单击事件仅在它已完成上一次执行时执行。我的代码是 $(".next").click(function(){ $(this).parent().find('.overlay').css({'display':'block'}); addContent(options, speed, 1); }); 最简单的方法是在启动任务时单击事件处理程序,并在任务完成后再次绑定它。您需要有某种回调或延迟对象来知道addContent函数何时完成,然后执行以下操作: $(".next").on('c
$(".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
});
}
$(.next”)。在('click',doStuff)上;
函数doStuff(){
$(“.next”).off('click',doStuff);
$(this).parent().find('.overlay').css('display','block');
addContent(options,speed,1,function(){//上次执行的是什么?addContent函数是否执行一些异步任务?最好使用on/off
而不是bind/unbind
@Fabriziocarderan如果你有jQuery 1/7+,是的,建议优先选择unbind
。我的addContent()函数包含太多代码,addContent()未完全执行,click事件已绑定我该怎么做。请在addContent开始时调用unbind(或off),然后再次调用click函数以在结束时重新绑定它。