单击一次后禁用所有其他元素

时间:2013-04-30 07:30:04

标签: jquery

我希望在点击任何按钮一次后禁用所有按钮。

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/

4 个答案:

答案 0 :(得分:0)

你做错了。

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

});

答案 1 :(得分: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

答案 2 :(得分: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/

答案 3 :(得分: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/