这很简单:在元素el上调用bootstrap按钮('complete')后,
el.attr('disabled', 'disabled');
和
el.addClass('disabled');
无效
这是jsfiddle http://jsfiddle.net/D2RLR/2732/
这就是我所期望的(jsfiddle使用'loading'):http://jsfiddle.net/xgKZd/
答案 0 :(得分:5)
这似乎只是一个时间问题:如果您在设置disabled
类和属性之前“等待”,它就会起作用:Demo (jsfiddle)
该插件使用超时0(检查源以获取更多信息)但似乎“花费”更多时间。只需添加一些延迟或自己做按钮效果,这样就可以控制动作的顺序。
setTimeout(function() { $('#bton').button('complete'); }, 2000);
setTimeout(function() { $('#bton').attr('disabled', 'disabled').addClass('disabled'); }, 4000);
答案 1 :(得分:5)
我遇到了同样的问题,想要分享另一种解决方案。您可以更改加载文本数据atrribute值。所以如果你有一个按钮:
<button id='myButton' data-loading-text="Loading..." type="submit">Save</button>
您最初做某事并希望显示“正在加载...”消息
$('#myButton').button('loading');
然后,当你完成所有工作后,你可以这样做:
$('#myButton').data('loading-text','Done!').button('loading');
答案 2 :(得分:0)
@Sherbrow是对的,但你不需要等待2秒才能禁用按钮。因为.button
的setState方法使用setTimeout(checkout source code)来处理类,所以你只需做类似的事情,例如:
var $btn = $('#btn');
$btn.button('complete');
setTimeout(function(){
$btn.attr('disabled', 'disabled').addClass('disabled');
}, 0);