diff --git a/docs/javascript.html b/docs/javascript.html index 3192fa04a7..02c0f6a004 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -22,6 +22,7 @@ + @@ -48,6 +49,7 @@
  • Modals
  • Dropdown
  • ScrollSpy
  • +
  • Buttons
  • Tabs
  • Twipsy
  • Popover
  • @@ -312,6 +314,54 @@ $('#my-modal').bind('hidden', function () { + + +
    + +
    +
    +

    This plugin offers additional functionality for managing button state.

    + Download +
    +
    +

    Using bootstrap-buttons.js

    +
    $('.tabs').button()
    +

    Markup

    +

    You can leverage bootstraps button toggle helper without writing any javascript by using the data-toggle attribute.

    +
    <button class="btn" data-toggle="toggle" >...</button>
    +

    Methods

    +

    $().button('loading')

    +

    Sets button state to loading - disables button and swaps text to loading text. Loading text should be defined on the button element using the data attribute data-loading-text. +

    +
    <button class="btn" data-loading-text="loading stuff..." >...</button>
    +

    $().button('reset')

    +

    Resets button state - swaps text to original text.

    +

    $().button(string)

    +

    Resets button state - swaps text to any data defined text state.

    +
    <button class="btn" data-complete-text="finished!" >...</button>
    +<script>
    +  $('.btn').button('complete')
    +</scrip>
    +

    Demo

    + + +
    +
    +
    + + diff --git a/js/bootstrap-buttons.js b/js/bootstrap-buttons.js new file mode 100644 index 0000000000..fe6c9c5999 --- /dev/null +++ b/js/bootstrap-buttons.js @@ -0,0 +1,50 @@ +/* ============================================================ + * bootstrap-dropdown.js v1.3.0 + * http://twitter.github.com/bootstrap/javascript.html#dropdown + * ============================================================ + * Copyright 2011 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + function setState(el, state) { + var d = 'disabled' + , $el = $(el) + , data = $el.data() + + state = state + 'Text' + data.resetText || $el.data('resetText', $el.html()) + + $el.html( data[state] || $.fn.button.defaults[state] ) + + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + } + + $.fn.button = function(state) { + var d = 'disabled' + return this.each(function () { + state && setState(this, state) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + +}( window.jQuery || window.ender ); \ No newline at end of file