前回の実行が終了した場合にのみクリックイベントを実行したい。私のコードは
$(".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
});
}