aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Thornton <[email protected]>2011-10-29 17:58:58 -0700
committerJacob Thornton <[email protected]>2011-10-29 17:58:58 -0700
commite8b66a9626055957a378464e2b9204f156b34c17 (patch)
treece5b4eb15c7f64794ba988d116c510a309569ccd
parent9a30b8c05d26aa6c8e80c0b81f2fb3d979157a24 (diff)
downloadbootstrap-e8b66a9626055957a378464e2b9204f156b34c17.tar.xz
bootstrap-e8b66a9626055957a378464e2b9204f156b34c17.zip
star work on bootstrap-buttons.js
-rw-r--r--docs/javascript.html50
-rw-r--r--js/bootstrap-buttons.js50
2 files changed, 100 insertions, 0 deletions
diff --git a/docs/javascript.html b/docs/javascript.html
index 3192fa04a..02c0f6a00 100644
--- a/docs/javascript.html
+++ b/docs/javascript.html
@@ -22,6 +22,7 @@
<script src="../js/bootstrap-dropdown.js"></script>
<script src="../js/bootstrap-scrollspy.js"></script>
<script src="../js/bootstrap-tabs.js"></script>
+ <script src="../js/bootstrap-buttons.js"></script>
<!-- Le styles -->
<link href="../bootstrap.css" rel="stylesheet">
@@ -48,6 +49,7 @@
<li><a href="#modal">Modals</a></li>
<li><a href="#dropdown">Dropdown</a></li>
<li><a href="#scrollspy">ScrollSpy</a></li>
+ <li><a href="#buttons">Buttons</a></li>
<li><a href="#tabs">Tabs</a></li>
<li><a href="#twipsy">Twipsy</a></li>
<li><a href="#popover">Popover</a></li>
@@ -315,6 +317,54 @@ $('#my-modal').bind('hidden', function () {
<!-- Tabs
================================================== -->
+ <section id="buttons">
+ <div class="page-header">
+ <h1>Buttons <small>bootstrap-buttons.js</small></h1>
+ </div>
+ <div class="row">
+ <div class="span4 columns">
+ <p>This plugin offers additional functionality for managing button state.</p>
+ <a href="../js/bootstrap-buttons.js" target="_blank" class="btn primary">Download</a>
+ </div>
+ <div class="span12 columns">
+ <h3>Using bootstrap-buttons.js</h3>
+ <pre class="prettyprint linenums">$('.tabs').button()</pre>
+ <h3>Markup</h3>
+ <p>You can leverage bootstraps button toggle helper without writing any javascript by using the <code>data-toggle</code> attribute.</p>
+ <pre class="prettyprint linenums">&lt;button class="btn" data-toggle="toggle" &gt;...&lt;/button&gt;</pre>
+ <h3>Methods</h3>
+ <h4>$().button('loading')</h4>
+ <p>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 <code>data-loading-text</code>.
+ </p>
+ <pre class="prettyprint linenums">&lt;button class="btn" data-loading-text="loading stuff..." &gt;...&lt;/button&gt;</pre>
+ <h4>$().button('reset')</h4>
+ <p>Resets button state - swaps text to original text.</p>
+ <h4>$().button(string)</h4>
+ <p>Resets button state - swaps text to any data defined text state.</p>
+<pre class="prettyprint linenums">&lt;button class="btn" data-complete-text="finished!" &gt;...&lt;/button&gt;
+&lt;script&gt;
+ $('.btn').button('complete')
+&lt;/scrip&gt;</pre>
+ <h3>Demo</h3>
+ <button id="fat-btn" class="btn danger">Click me</button>
+ <script>
+ $(function() {
+ var btn = $('#fat-btn').click(function () {
+ btn.button('loading')
+ setTimeout(function () {
+ btn.button('reset')
+ }, 3000)
+ })
+ })
+ </script>
+ </div>
+ </div>
+ </section>
+
+
+ <!-- Tabs
+ ================================================== -->
+
<section id="tabs">
<div class="page-header">
<h1>Tabs <small>bootstrap-tabs.js</small></h1>
diff --git a/js/bootstrap-buttons.js b/js/bootstrap-buttons.js
new file mode 100644
index 000000000..fe6c9c599
--- /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