Sha256: 9f8d0f27b13acf0f6899ffa7f6d7c5c28c732e8fc751d7e7912bc613bab5a55a

Contents?: true

Size: 1.54 KB

Versions: 6

Compression:

Stored size: 1.54 KB

Contents

// Simple, unobtrusive tab widget
// Written by Daniel Mendler
(function($) {
    "use strict";

    $.fn.tabWidget = function(options) {
        var store = options && options.store;
	var selected = null;
	$("> a[href^='#']", this).click(function() {
            // Handle tab clicks
	    if (selected.data('tab') == $(this).data('tab')) {
		return false;
	    }
	    if (!selected.data('tab').confirmUnsaved()) {
		return false;
	    }
	    selected.data('tab').hide();
	    selected.parent().removeClass('selected');
	    selected = $(this);
	    selected.data('tab').show();
	    selected.parent().addClass('selected');
	    if (store) {
		$.storage.set(store, selected.data('tab').attr('id'));
	    }
	    return false;
	}).each(function() {
	    // Hide tabs
	    var tab = $(this.href.match(/(#.*)$/)[1]);
	    tab.hide();
	    $(this).data('tab', tab);
	});

        // Get selected tab from store
	if (store) {
	    var name = $.storage.get(store);
	    if (name) {
                selected = $("> a[href='#" + name + "']", this);
	    }
	}

        // Get selected tab by class
	if (!selected || selected.size() === 0) {
            selected = $(this).filter('.selected').find("> a[href^='#']");
	}

        // Select first tab
        if (!selected || selected.size() === 0) {
            selected = $(this).filter(':first').find("> a[href^='#']");
	}

	$(this).removeClass('selected');

	// Show initially selected tab
	if (selected && selected.data('tab')) {
	    selected.parent().addClass('selected');
	    selected.data('tab').show();
	}
    };
})(jQuery);

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
olelo-0.9.15 static/script/14-olelo.tabwidget.js
olelo-0.9.14 static/script/14-olelo.tabwidget.js
olelo-0.9.13 static/script/14-olelo.tabwidget.js
olelo-0.9.12 static/script/14-olelo.tabwidget.js
olelo-0.9.11 static/script/14-olelo.tabwidget.js
olelo-0.9.10 static/script/14-olelo.tabwidget.js