/* ========================================================= * bootstrap-tabdrop.js * http://www.eyecon.ro/bootstrap-tabdrop * ========================================================= * Copyright 2012 Stefan Petre * * 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( $ ) { var WinReszier = (function(){ var registered = []; var inited = false; var timer; var resize = function(ev) { clearTimeout(timer); timer = setTimeout(notify, 100); }; var notify = function() { for(var i=0, cnt=registered.length; i'+options.text+' ') .prependTo(this.element); if (this.element.parent().is('.tabs-below')) { this.dropdown.addClass('dropup'); } WinReszier.register($.proxy(this.layout, this)); this.layout(); }; TabDrop.prototype = { constructor: TabDrop, layout: function() { var collection = []; this.dropdown.removeClass('hide'); this.element .append(this.dropdown.find('li')) .find('>li') .not('.tabdrop') .each(function(){ if(this.offsetTop > 0) { collection.push(this); } }); if (collection.length > 0) { collection = $(collection); this.dropdown .find('ul') .empty() .append(collection); if (this.dropdown.find('.active').length == 1) { this.dropdown.addClass('active'); } else { this.dropdown.removeClass('active'); } } else { this.dropdown.addClass('hide'); } } } $.fn.tabdrop = function ( option ) { return this.each(function () { var $this = $(this), data = $this.data('tabdrop'), options = typeof option === 'object' && option; if (!data) { $this.data('tabdrop', (data = new TabDrop(this, $.extend({}, $.fn.tabdrop.defaults,options)))); } if (typeof option == 'string') { data[option](); } }) }; $.fn.tabdrop.defaults = { text: 'More' }; $.fn.tabdrop.Constructor = TabDrop; }( window.jQuery );