2013-01-22 47 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