別のイベントが発生しているときに、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');
});