Jquery / bootstrap禁用按钮

时间:2016-07-15 12:23:18

标签: javascript jquery html twitter-bootstrap twitter-bootstrap-3

嗨iv一直在寻找使用JQuery的解决方案,或者修改twitter bootstrap类以防止按钮执行其onclick操作,即禁用它。然而,到目前为止我发现的结果没有正确执行,并且大多数情况下仅显示被禁用但仍能正确执行:

$("#previous").prop('disabled', true);
$("#next").prop('disabled', true);

目的是防止选项卡索引太高或太低时交换选项卡。大多数其他解决方案似乎包含大量看似不必要的Javascript,这些功能似乎相对简单。

如:

$("#previous").click(function() {
  var me = $(this);
  me.unbind( "click");            
})

应该删除绑定函数,但这意味着当tab选项卡索引增加时也会重新附加事件。是否有更简单的解决方案可用于暂时禁用按钮或仅阻止执行默认操作而不删除事件或不显示按钮元素?

任何帮助将不胜感激:)

5 个答案:

答案 0 :(得分:13)

如果你正在使用twitter bootstrap,那么已经为你实现了这种确切的行为。

您只需要更改要禁用的元素的类.disabled

像:

$("#previous").addClass('disabled');

答案 1 :(得分:3)

让我举一个简单的例子。在这里,单击一个按钮就会被禁用。

<button class="btn btn-danger">Click Me</button>

$('.btn-danger').on('click', function() {

    if ($(this).hasClass('disabled')) {
        return false;
    } else {
        $(this).addClass('disabled');
    }
});

答案 2 :(得分:1)

您必须使用event.preventDefault()

阻止默认操作
$("#previous").click(function(event) {
  //add logic to attach style behavior here or conditionally prevent default
      event.preventDefault();    
});

答案 3 :(得分:0)

这是我的解决方法:

JavaScript

jQuery.fn.extend( {

    bsButtonSetStatus : function( status ) {
        if ( status ) {
            this.removeClass( 'disabled' );
        } else {
            this.addClass( 'disabled' );
        }
    },

} );

CSS

.btn.disabled,
.btn:disabled {
    -webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
    filter: grayscale(100%);
    opacity: 0.25;
    pointer-events: none;
}

答案 4 :(得分:0)

这是执行此操作的最佳方法。

$("#previous").prop({disabled: true});

使用此按钮实际上会禁用按钮,而不仅是为褪色的视图添加类