2

別のイベントが発生しているときに、2つのボタンのクリックイベントをしばらく無効にしてから、再度有効にします。.offメソッドはそれをブロックできますが、after .onを使用しても、ボタンのクリックイベントを再び使用可能にすることはできません。

$('#button-block-1').click(function () {
    $('#block-1, #block-1-expansion-button').stop().fadeToggle('slow');
    if ($('#block-1, #block-1-expansion-button').is(':visible')) {$('#block-2').fadeOut('slow')}
});
$('#button-block-2').click(function () {
    $('#block-2').stop().fadeToggle('slow');
    if ($('#block-2').is(':visible')) {$('#block-1, #block-1-expansion-button').fadeOut('slow')}
});

$('#block-1-expansion-button').toggle(function () {
    $('#body-wrapper').animate({
        'top': '20px'
    }, 450);
    $('#button-block-1, #button-block-2').off('click');
    },
    function () {
    $('#body-wrapper').animate({
        'top': '0'
    }, 450);
    $('#button-block-1, #button-block-2').on('click');
});

JsFiddleの例

4

1 に答える 1

5

prop()代わりに使用する必要があります:

$('#button-block-1, #button-block-2').prop('disabled',true);//disabled buttons
$('#button-block-1, #button-block-2').prop('disabled',false);//enabled buttons
于 2013-01-22T08:39:26.817 に答える