重置后jQuery attr()没有在Bootstrap按钮上工作

Ale*_*utu 7 jquery twitter-bootstrap

我有一个非常简单的代码,不起作用,我不明白我错过了什么.

外部资源

<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

HTML

<p>
    <button id="btn-id" class="btn btn-large btn-primary" type="button" data-loading-text="loading stuff...">Click Me</button>
</p>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$(document).ready(function () {
    $("#btn-id").button();

    $("#btn-id").click(function () {
        //$("#btn-id").attr("disabled",true);
        $(this).button('loading');

        setTimeout(function () {
            //this desn't work. The button resets but it doesn't get disabled afterwards
            $("#btn-id").button('reset').attr("disabled", true);

            //the bellow line works as expected
            //$("#btn-id").button('reset').addClass("btn-success");
        }, 2000);
    });
});
Run Code Online (Sandbox Code Playgroud)

似乎之后button('reset'),我可以,addClass('someclass')但我不能再禁用该按钮了.

为什么这不起作用,我该如何解决?

的jsfiddle

Spo*_*key 2

不确定这是否是正确的方法,但您可以使用解决方法

$(document).ready(function () {
    $("#btn-id").button();

    $("#btn-id").click(function () {
        $(this).button('loading');
        setTimeout(function () {
            $("#btn-id").addClass('btn-success').data('loading-text', 'OK').button('loading')
        }, 2000);
    });
});
Run Code Online (Sandbox Code Playgroud)

小提琴