2013-01-22 48 views
2

我想禁用兩個按鈕上的點擊事件一會兒,當另一個事件正在進行,然後重新啓用它。 .off方法可以阻止它,但在.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 example

+0

[如何暫時禁用jQuery的一個單擊處理?(http://stackoverflow.com/questions/1263042/how -to-暫時關閉,一鍵式處理功能於jQuery的)。 – Vucko

+0

你也可以單獨聲明函數:http://jsfiddle.net/DCdwf/3/,但你應該隨着烤的答案去。 –

回答

5

您應該使用prop()代替:

$('#button-block-1, #button-block-2').prop('disabled',true);//disabled buttons 
$('#button-block-1, #button-block-2').prop('disabled',false);//enabled buttons 
+0

這對safari 7.1來說並不適用 - 關於爲什麼按鈕仍然可以點擊的想法? – Jonathan