jQuery即学即用
源代码在线查看: jquery.semantictabs.js
/* jquery.semantictabs.js Creates semantic tabs from nested divs Chris Yates Inspired by Niall Doherty's jQuery Coda-Slider v1.1 - http://www.ndoherty.com/coda-slider Usage: $("#mycontainer").semantictabs({ panel:'mypanelclass', //-- Selector of individual panel body head:'headelement', //-- Selector of element containing panel header active:':first', //-- Which panel to activate by default activate:':eq(2)' //-- Argument used to activate panel programmatically }); 1 Nov 2007 Bug fixes 15 Dec 2009: http://plugins.jquery.com/node/11834 http://plugins.jquery.com/node/8486 (thanks zenmonkey) */ jQuery.fn.semantictabs = function(passedArgsObj) { /* defaults */ var defaults = {panel:'panel', head:'h2', active:':first', activate:false}; /* override the defaults if necessary */ var args = $.extend(defaults,passedArgsObj); // Allow activation of specific tab, by index if (args.activate) { return this.each(function(){ var container = jQuery(this); container.find("." + args.panel).hide(); container.find("ul.tabs li").removeClass("active"); container.find("div." + args.panel + ":eq(" + args.activate + ")").show(); container.find("ul.tabs li:eq(" + args.activate + ")").addClass("active"); }); } else { return this.each(function(){ // Load behavior var container = jQuery(this); container.parent().find("." + args.panel).hide(); container.find("div." + args.panel + args.active).show(); container.prepend(""); container.find("." + args.panel).each( function() { var title = jQuery(this).find(args.head).text(); this.title = title; container.find("ul.tabs").append(""+title+""); }); container.find("ul li" + args.active).addClass("active"); // Tab click behavior container.find("ul.tabs li").click(function(){ container.find("." + args.panel).hide(); container.find("ul.tabs li").removeClass("active"); container.find("div." + args.panel + "[title='"+jQuery(this).text()+"']").show(); jQuery(this).addClass("active"); }); container.find("#remtabs").click(function(){ container.find("ul.tabs").remove(); container.find("." + args.container + " ." + args.panel).show(); container.find("#remtabs").remove(); }); }); } };