2013-04-30 52 views
0

我想在任何按鈕被點擊一次後禁用所有按鈕。在點擊一次後禁用所有其他元素

jQuery('div').find('input[type="submit"]').each(function(){ 
    jQuery(this).one('click', function(e) { 
    jQuery(this).css({ 
     'background' : 'rgba(0, 0, 0, .15)', 
     'outline' : '0', 
     '-webkit-box-shadow' : 'inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05)', 
     '-moz-box-shadow' : 'inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)', 
     'box-shadow' : 'inset 0 2px 4px rgba(0, 0, 0, .15), 0 1px 2px rgba(0, 0, 0, .05)' 
     }).unbind('click'); 


    }); 
}) 

這裏我目前的生活片段: http://jsfiddle.net/HyJvQ/3/

編輯:抱歉,沒有準確把握。

這些元素顯示不只是兩次..我想在其他按鈕點擊後禁用每一對中的一個按鈕。 更新提琴: http://jsfiddle.net/283g7/

+0

這是您的答案:http://jsfiddle.net/HyJvQ/10/ – Damian0o 2013-04-30 07:35:03

+0

他的評論是正確的,我真的想出來..雖然其他答案也是正確的,但有不同的做法.. – 2013-04-30 07:46:08

回答

0

這是我想要做出來是什麼..我經由使用.siblings()

$('body div').each(function() { 
$(this).find('input[type="submit"]').each(function(){ 
    $(this).one('click', function(e){ 
       $(this).css({'border': 'red 1px solid'}); 
       $(this).siblings().unbind('click'); 
       }) 
}) 
}) 
解決問題

http://jsfiddle.net/283g7/2/

0

你做錯了。

$('#someIdorButton').on('click',function(){ 
$('input:submit').prop('disabled',true); // or $('input').attr('disabled','disabled'); 

}); 
0

使用prop()以禁用按鈕

jQuery('div').find('input[type="submit"]').prop('disabled',true); 

試試這個

var buttons=jQuery('div').find('input[type="submit"]'); 
buttons.each(function() { 
    jQuery(this).one('click', function (e) { 
    jQuery(this).css({'border' : 'red 1px solid' }).unbind('click'); 
    buttons.prop('disabled',true); 

    }); 
}) 

這會發現你的div內的所有按鈕,並禁用它

fiddle here

0

像這樣的東西應該工作:

var $buttons = $('div input[type="submit"]'); 

$buttons.click(function (e) { 
    $(this).css({'border' : 'red 1px solid' }); 
    $buttons.off('click'); 
}) 

演示:http://jsfiddle.net/HyJvQ/9/

相關問題