-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 に答える