diff options
author | David Stutz <davidstutz@web.de> | 2014-10-19 22:27:27 +0200 |
---|---|---|
committer | David Stutz <davidstutz@web.de> | 2014-10-19 22:27:27 +0200 |
commit | 188603e9075b2a6cf3cf5d0a500cee964c77801d (patch) | |
tree | 4af4ad26871f3841e5169f87222a05b22cd8615d /docs/js/bootstrap-tab.js | |
parent | 9a58ab3ba51514dfb3d350933c5174a1628ab8e1 (diff) | |
download | bootstrap-strength-meter-188603e9075b2a6cf3cf5d0a500cee964c77801d.zip bootstrap-strength-meter-188603e9075b2a6cf3cf5d0a500cee964c77801d.tar.gz bootstrap-strength-meter-188603e9075b2a6cf3cf5d0a500cee964c77801d.tar.bz2 |
Added documentation, updated Password Score, changed folder structure, added bower.json.
Diffstat (limited to 'docs/js/bootstrap-tab.js')
-rw-r--r-- | docs/js/bootstrap-tab.js | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/docs/js/bootstrap-tab.js b/docs/js/bootstrap-tab.js new file mode 100644 index 0000000..e1c1559 --- /dev/null +++ b/docs/js/bootstrap-tab.js @@ -0,0 +1,135 @@ +/* ======================================================================== + * Bootstrap: tab.js v3.0.0 + * http://twbs.github.com/bootstrap/javascript.html#tabs + * ======================================================================== + * Copyright 2012 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"; + + // TAB CLASS DEFINITION + // ==================== + + var Tab = function (element) { + this.element = $(element) + } + + Tab.prototype.show = function () { + var $this = this.element + var $ul = $this.closest('ul:not(.dropdown-menu)') + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + if ($this.parent('li').hasClass('active')) return + + var previous = $ul.find('.active:last a')[0] + var e = $.Event('show.bs.tab', { + relatedTarget: previous + }) + + $this.trigger(e) + + if (e.isDefaultPrevented()) return + + var $target = $(selector) + + this.activate($this.parent('li'), $ul) + this.activate($target, $target.parent(), function () { + $this.trigger({ + type: 'shown.bs.tab' + , relatedTarget: previous + }) + }) + } + + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active') + var transition = callback + && $.support.transition + && $active.hasClass('fade') + + function next() { + $active + .removeClass('active') + .find('> .dropdown-menu > .active') + .removeClass('active') + + element.addClass('active') + + if (transition) { + element[0].offsetWidth // reflow for transition + element.addClass('in') + } else { + element.removeClass('fade') + } + + if (element.parent('.dropdown-menu')) { + element.closest('li.dropdown').addClass('active') + } + + callback && callback() + } + + transition ? + $active + .one($.support.transition.end, next) + .emulateTransitionEnd(150) : + next() + + $active.removeClass('in') + } + + + // TAB PLUGIN DEFINITION + // ===================== + + var old = $.fn.tab + + $.fn.tab = function ( option ) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.tab') + + if (!data) $this.data('bs.tab', (data = new Tab(this))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.tab.Constructor = Tab + + + // TAB NO CONFLICT + // =============== + + $.fn.tab.noConflict = function () { + $.fn.tab = old + return this + } + + + // TAB DATA-API + // ============ + + $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { + e.preventDefault() + $(this).tab('show') + }) + +}(window.jQuery); |