1(function($) { 2 $.fn.Tablist = function(settings) { 3 settings = jQuery.extend({ 4 minHeight: 0, // æ´åé 籤å塿å°é«åº¦ 5 extHeight: 50, //æ´åé 籤åå¡é«åº¦èª¿æ´å¼ 6 tabName: "tab", //é 籤class Name 7 selectTabName: "selectedTab", //被é¸åé 籤çclass Name 8 contentName: "content", //å §å®¹åå¡çclass Name 9 TabIndex: 0, //é è¨é¡¯ç¤ºçé 籤 10 tabFade: false, //é ç±¤æ·¡å ¥ææ 11 contentFade: false, //å §å®¹æ·¡å ¥ææ 12 fadeSpeed: 800, //æ·¡å ¥ææé度 13 click: null, 14 mouseover: null, 15 focus: null, 16 event: "click" //使ç¨çäºä»¶ click|mouseenter|focus 17 }, settings); 18 19 var tabs = this; 20 21 function initialize() { 22 //å å°è¨æè¢«é¸åé 籤çclass, è¨çºæªé¸å 23 tabs.children("li").children("." + settings.selectTabName).removeClass(settings.selectTabName).addClass(settings.tabName); 24 25 //è¨å®é è¨é¸åé 籤çclass 26 tabs.children("li").children("." + settings.tabName).eq(settings.TabIndex).removeClass(settings.tabName).addClass(settings.selectTabName); 27 28 //è¨å®å §å®¹åå¡çCSS 29 tabs.children("li").children("." + settings.contentName).css({ display: "none" }); 30 31 //è¨å®é è¨é¡¯ç¤ºçå §å®¹åå¡ 32 tabs.children("li").children("." + settings.contentName).eq(settings.TabIndex).css("display", "block"); 33 34 //è¨å®é è¨é«åº¦ 35 var Height = tabs.children("li").children("." + settings.contentName).eq(settings.TabIndex).outerHeight(true) + settings.extHeight; 36 if (Height < settings.minHeight) { 37 Height = settings.minHeight; 38 } 39 tabs.css("height", Height + "px"); 40 41 if (settings.click) { 42 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).click(function() { 43 TabChange($(this)); 44 }); 45 } 46 47 if (settings.mouseover) { 48 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).bind("mouseenter", function() { 49 TabChange($(this)); 50 this.focus(); 51 }); 52 } 53 54 if (settings.focus) { 55 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).bind("focus", function() { 56 if ($(this).attr('class').toString() == settings.tabName) { TabChange($(this)); } 57 }); 58 } 59 60 var eventset = (settings.click == null || settings.mouseover == null || settings.focus == null); 61 62 63 switch (settings.event) { 64 65 case "click": 66 if (eventset) { 67 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).click(function() { 68 TabChange($(this)); 69 }); 70 } 71 break; 72 73 case "mouseenter": 74 if (eventset) { 75 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).bind("mouseenter", function() { 76 TabChange($(this)); this.focus(); 77 }); 78 } 79 break; 80 81 case "focus": 82 if (eventset) { 83 tabs.children("li").children("." + settings.tabName + ",." + settings.selectTabName).bind("focus", function() { 84 if ($(this).attr('class').toString() == settings.tabName) { TabChange($(this)); } 85 }); 86 } 87 break; 88 } 89 //ä¿®æ£ç¬¬ä¸æ¬¡å·è¡æ,䏿¹çå塿ç°å¸¸ 90 TabChange(tabs.children("li:first").children("." + settings.tabName + ",." + settings.selectTabName)); 91 } 92 93 //é ç±¤è®æ 94 function TabChange(selectedTab) { 95 //è¨å®ææé ç±¤çºæªé¸æ 96 tabs.children("li").children("." + settings.selectTabName).removeClass(settings.selectTabName).addClass(settings.tabName); 97 98 //è¨å®è¢«é¸æé 籤 99 if (!settings.tabFade) { 100 selectedTab.removeClass(settings.tabName).addClass(settings.selectTabName); 101 } 102 else { 103 //æ·¡å ¥ææ 104 selectedTab.removeClass(settings.tabName).addClass(settings.selectTabName).css("display", "none").fadeIn(settings.fadeSpeed); 105 } 106 107 //è¨ç®é ç±¤å §å®¹é«åº¦+調æ´å¼, 給å¤å±¤ul 108 var height = selectedTab.parent("li").children("." + settings.contentName).outerHeight(true) + settings.extHeight; 109 if (height < settings.minHeight) height = settings.minHeight; 110 tabs.css("height", height + "px"); 111 $(window).on('resize orientationchange', function () { 112 var height = selectedTab.parent("li").children("." + settings.contentName).outerHeight(true) + settings.extHeight; 113 if (height < settings.minHeight) height = settings.minHeight; 114 tabs.css("height", height + "px"); 115 }); 116 117 //é±èææé ç±¤å §å®¹ 118 tabs.children("li").children("." + settings.contentName).css("display", "none"); 119 120 //é¡¯ç¤ºè¢«é¸æçé ç±¤å §å®¹ 121 if (!settings.contentFade) { 122 selectedTab.parent("li").children("." + settings.contentName).css("display", "block"); 123 } 124 else { 125 //æ·¡å ¥ææ 126 selectedTab.parent("li").children("." + settings.contentName).fadeIn(settings.fadeSpeed); 127 } 128 } 129 initialize(); 130 }; 131})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.