123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /**
- * @author ZhangHuihua@msn.com
- *
- */
- (function($){
- $.fn.extend({
- /**
- * options: reverse[true, false], eventType[click, hover], currentIndex[default index 0]
- * stTab[tabs selector], stTabPanel[tab panel selector]
- * ajaxClass[ajax load], closeClass[close tab]
- */
- tabs: function (options){
- var op = $.extend({reverse:false, eventType:"click", currentIndex:0, stTabHeader:"> .tabsHeader", stTab:">.tabsHeaderContent>ul", stTabPanel:"> .tabsContent", ajaxClass:"j-ajax", closeClass:"close", prevClass:"tabsLeft", nextClass:"tabsRight"}, options);
-
- return this.each(function(){
- initTab($(this));
- });
-
- function initTab(jT){
- var jSelector = jT.add($("> *", jT));
- var jTabHeader = $(op.stTabHeader, jSelector);
- var jTabs = $(op.stTab + " li", jTabHeader);
- var jGroups = $(op.stTabPanel + " > *", jSelector);
- jTabs.unbind().find("a").unbind();
- jTabHeader.find("."+op.prevClass).unbind();
- jTabHeader.find("."+op.nextClass).unbind();
-
- jTabs.each(function(iTabIndex){
- if (op.currentIndex == iTabIndex) $(this).addClass("selected");
- else $(this).removeClass("selected");
-
- if (op.eventType == "hover") $(this).hover(function(event){switchTab(jT, iTabIndex)});
- else $(this).click(function(event){switchTab(jT, iTabIndex)});
- $("a", this).each(function(){
- if ($(this).hasClass(op.ajaxClass)) {
- $(this).click(function(event){
- var jGroup = jGroups.eq(iTabIndex);
- if (this.href && !jGroup.attr("loaded")) jGroup.loadUrl(this.href,{},function(){
- jGroup.find("[layoutH]").layoutH();
- jGroup.attr("loaded",true);
- });
- event.preventDefault();
- });
-
- } else if ($(this).hasClass(op.closeClass)) {
- $(this).click(function(event){
- jTabs.eq(iTabIndex).remove();
- jGroups.eq(iTabIndex).remove();
- if (iTabIndex == op.currentIndex) {
- op.currentIndex = (iTabIndex+1 < jTabs.size()) ? iTabIndex : iTabIndex - 1;
- } else if (iTabIndex < op.currentIndex){
- op.currentIndex = iTabIndex;
- }
- initTab(jT);
- return false;
- });
- }
- });
- });
- switchTab(jT, op.currentIndex);
- }
-
- function switchTab(jT, iTabIndex){
- var jSelector = jT.add($("> *", jT));
- var jTabHeader = $(op.stTabHeader, jSelector);
- var jTabs = $(op.stTab + " li", jTabHeader);
- var jGroups = $(op.stTabPanel + " > *", jSelector);
-
- var jTab = jTabs.eq(iTabIndex);
- var jGroup = jGroups.eq(iTabIndex);
- if (op.reverse && (jTab.hasClass("selected") )) {
- jTabs.removeClass("selected");
- jGroups.hide();
- } else {
- op.currentIndex = iTabIndex;
- jTabs.removeClass("selected");
- jTab.addClass("selected");
-
- jGroups.hide().eq(op.currentIndex).show();
- }
-
- if (!jGroup.attr("inited")){
- jGroup.attr("inited", 1000).find("input[type=text]").filter("[alt]").inputAlert();
- }
- }
-
- }
- });
- })(jQuery);
|