带有延迟的jQuery/Twitter Bootstrap数据加载文本按钮

Mic*_*l B 58 javascript css jquery twitter-bootstrap

我想在我的网站上运行这个确切的示例:

http://getbootstrap.com/2.3.2/javascript.html#buttons

但是,只需包含此HTML:

<button type="button" class="btn btn-primary" data-loading-text="Loading...">Loading state</button>
Run Code Online (Sandbox Code Playgroud)

不行.我正在运行jQuery 1.7.x并加载了Bootstrap JS文件.

具体来说:我希望按钮移动到"加载"文本更改稍有延迟,然后返回常规文本.我的谷歌搜索似乎没有一个很好的在线示例(大多数都要求永久状态更改或切换),而Bootstrap站点本身缺少文档.

msc*_*msc 102

在文档页面中,有一个名为application.js的文件正在加载.http://twitter.github.com/bootstrap/assets/js/application.js

// button state demo
$('#fat-btn')
    .click(function () {
        var btn = $(this)
        btn.button('loading')
        setTimeout(function () {
            btn.button('reset')
        }, 3000)
    });
Run Code Online (Sandbox Code Playgroud)

  • 没问题,很高兴它有效.一些例子没有详细记录. (14认同)
  • 这不是他们的作弊行为吗? (4认同)
  • 这对我有帮助,但事实证明当前(3.1.0)bootstrap.min.js包含application.js.我认为真正解决我的问题的是从内联点击处理程序(<button onclick ="dosomething()"/>)到JQuery单击处理程序附加,如示例所示. (2认同)

小智 21

或者只是添加它以便它获取Twitter Bootstrap属性.

$('button[data-loading-text]').click(function () {
    $(this).button('loading');
});
Run Code Online (Sandbox Code Playgroud)

  • 这对我很有用.如果你还想绑定到动态添加的按钮:$(document).on('click','button [data-loading-text]',function(){$(this).button('loading');} ); (7认同)

小智 6

记下接受的答案如何在运行按钮('loading')之前将jQuery按钮对象转换为js var,因为虽然这有效,但是当直接在jQuery按钮对象上使用时,按钮('loading')将不起作用.