jQuery / Twitter Bootstrap data-загрузка-текстовая кнопка с задержкой


Я пытаюсь получить этот точный пример работы на моем сайте:

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

однако, просто включая этот HTML:

<button type="button" class="btn btn-primary" data-loading-text="Loading...">Loading state</button>

не работает. Я запускаю jQuery 1.7.x и загрузили файлы Bootstrap JS.

чтобы быть конкретным: я хочу, чтобы кнопка перешла к изменению текста "загрузка" для небольшой задержки, а затем вернулась к обычному тексту. Там, кажется, не очень хорошо пример доступен в интернете из моего Googling (большинство из них запрашивают постоянное изменение состояния или переключение), а сам сайт Bootstrap отсутствует в документации здесь.

6 57

6 ответов:

на странице документации загружается файл с именем 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)
    });

или просто добавьте это, чтобы он взял атрибут Twitter Bootstrap.

$('button[data-loading-text]').click(function () {
    $(this).button('loading');
});

обратите внимание, как принятый ответ преобразовал объект кнопки jQuery в js var перед запуском кнопки ("загрузка") на нем, потому что, пока это работает, кнопка ("загрузка") не будет работать при использовании непосредственно на объекте кнопки jQuery.

просто включите библиотеку bootstrap:

<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap.js "></script>

вот пример:

<!DOCTYPE html>
<HTML>
<HEAD>
    <TITLE>Bootstrap Example</TITLE>
    <link type="text/css" rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css ">
<STYLE>
</STYLE>
</HEAD>
<BODY>
    <button type="button" class="btn btn-primary" id="btnD" data-loading-text="=)">hola!!!</button>


    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script src="http://twitter.github.com/bootstrap/assets/js/bootstrap.js "></script>
    <script type="text/javascript">
        $(function(){
            $('#btnD').click(function(){
                  var btn = $(this); 
                  btn.button('loading');
            });
        });
    </script>
</BODY>
</HTML>

кроме того, jquery имеет .метод delay (), с которым может быть проще работать, чем с setTimeout.

просто поставьте маленький js

onclick="$(this).button('loading');"