亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ui.tabs.js

?? 使用JSP和Java Bean來構建一個網上書店。本章介紹的例子可以分成兩大部分
?? JS
?? 第 1 頁 / 共 2 頁
字號:
/* * jQuery UI Tabs * * Copyright (c) 2007, 2008 Klaus Hartl (stilbuero.de) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * * http://docs.jquery.com/UI/Tabs * * Depends: *	ui.core.js */(function($) {$.widget("ui.tabs", {	init: function() {		this.options.event += '.tabs'; // namespace event				// create tabs		this.tabify(true);	},	setData: function(key, value) {		if ((/^selected/).test(key))			this.select(value);		else {			this.options[key] = value;			this.tabify();		}	},	length: function() {		return this.$tabs.length;	},	tabId: function(a) {		return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '')			|| this.options.idPrefix + $.data(a);	},	ui: function(tab, panel) {		return {			options: this.options,			tab: tab,			panel: panel		};	},	tabify: function(init) {		this.$lis = $('li:has(a[href])', this.element);		this.$tabs = this.$lis.map(function() { return $('a', this)[0]; });		this.$panels = $([]);		var self = this, o = this.options;		this.$tabs.each(function(i, a) {			// inline tab			if (a.hash && a.hash.replace('#', '')) // Safari 2 reports '#' for an empty hash				self.$panels = self.$panels.add(a.hash);			// remote tab			else if ($(a).attr('href') != '#') { // prevent loading the page itself if href is just "#"				$.data(a, 'href.tabs', a.href); // required for restore on destroy				$.data(a, 'load.tabs', a.href); // mutable				var id = self.tabId(a);				a.href = '#' + id;				var $panel = $('#' + id);				if (!$panel.length) {					$panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass)						.insertAfter( self.$panels[i - 1] || self.element );					$panel.data('destroy.tabs', true);				}				self.$panels = self.$panels.add( $panel );			}			// invalid tab href			else				o.disabled.push(i + 1);		});		if (init) {			// attach necessary classes for styling if not present			this.element.addClass(o.navClass);			this.$panels.each(function() {				var $this = $(this);				$this.addClass(o.panelClass);			});			// Selected tab			// use "selected" option or try to retrieve:			// 1. from fragment identifier in url			// 2. from cookie			// 3. from selected class attribute on <li>			if (o.selected === undefined) {				if (location.hash) {					this.$tabs.each(function(i, a) {						if (a.hash == location.hash) {							o.selected = i;							// prevent page scroll to fragment							if ($.browser.msie || $.browser.opera) { // && !o.remote								var $toShow = $(location.hash), toShowId = $toShow.attr('id');								$toShow.attr('id', '');								setTimeout(function() {									$toShow.attr('id', toShowId); // restore id								}, 500);							}							scrollTo(0, 0);							return false; // break						}					});				}				else if (o.cookie) {					var index = parseInt($.cookie('ui-tabs' + $.data(self.element)),10);					if (index && self.$tabs[index])						o.selected = index;				}				else if (self.$lis.filter('.' + o.selectedClass).length)					o.selected = self.$lis.index( self.$lis.filter('.' + o.selectedClass)[0] );			}			o.selected = o.selected === null || o.selected !== undefined ? o.selected : 0; // first tab selected by default			// Take disabling tabs via class attribute from HTML			// into account and update option properly.			// A selected tab cannot become disabled.			o.disabled = $.unique(o.disabled.concat(				$.map(this.$lis.filter('.' + o.disabledClass),					function(n, i) { return self.$lis.index(n); } )			)).sort();			if ($.inArray(o.selected, o.disabled) != -1)				o.disabled.splice($.inArray(o.selected, o.disabled), 1);						// highlight selected tab			this.$panels.addClass(o.hideClass);			this.$lis.removeClass(o.selectedClass);			if (o.selected !== null) {				this.$panels.eq(o.selected).show().removeClass(o.hideClass); // use show and remove class to show in any case no matter how it has been hidden before				this.$lis.eq(o.selected).addClass(o.selectedClass);								// seems to be expected behavior that the show callback is fired				var onShow = function() {					$(self.element).triggerHandler('tabsshow',						[null, self.ui(self.$tabs[o.selected], self.$panels[o.selected])], o.show);				}; 				// load if remote tab				if ($.data(this.$tabs[o.selected], 'load.tabs'))					this.load(o.selected, onShow);				// just trigger show event				else					onShow();							}						// clean up to avoid memory leaks in certain versions of IE 6			$(window).bind('unload', function() {				self.$tabs.unbind('.tabs');				self.$lis = self.$tabs = self.$panels = null;			});		}		// disable tabs		for (var i = 0, li; li = this.$lis[i]; i++)			$(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass);		// reset cache if switching from cached to not cached		if (o.cache === false)			this.$tabs.removeData('cache.tabs');				// set up animations		var hideFx, showFx, baseFx = { 'min-width': 0, duration: 1 }, baseDuration = 'normal';		if (o.fx && o.fx.constructor == Array)			hideFx = o.fx[0] || baseFx, showFx = o.fx[1] || baseFx;		else			hideFx = showFx = o.fx || baseFx;		// reset some styles to maintain print style sheets etc.		var resetCSS = { display: '', overflow: '', height: '' };		if (!$.browser.msie) // not in IE to prevent ClearType font issue			resetCSS.opacity = '';		// Hide a tab, animation prevents browser scrolling to fragment,		// $show is optional.		function hideTab(clicked, $hide, $show) {			$hide.animate(hideFx, hideFx.duration || baseDuration, function() { //				$hide.addClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.				if ($.browser.msie && hideFx.opacity)					$hide[0].style.filter = '';				if ($show)					showTab(clicked, $show, $hide);			});		}		// Show a tab, animation prevents browser scrolling to fragment,		// $hide is optional.		function showTab(clicked, $show, $hide) {			if (showFx === baseFx)				$show.css('display', 'block'); // prevent occasionally occuring flicker in Firefox cause by gap between showing and hiding the tab panels			$show.animate(showFx, showFx.duration || baseDuration, function() {				$show.removeClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.				if ($.browser.msie && showFx.opacity)					$show[0].style.filter = '';				// callback				$(self.element).triggerHandler('tabsshow',					[null, self.ui(clicked, $show[0])], o.show);			});		}		// switch a tab		function switchTab(clicked, $li, $hide, $show) {			/*if (o.bookmarkable && trueClick) { // add to history only if true click occured, not a triggered click				$.ajaxHistory.update(clicked.hash);			}*/			$li.addClass(o.selectedClass)				.siblings().removeClass(o.selectedClass);			hideTab(clicked, $hide, $show);		}		// attach tab event handler, unbind to avoid duplicates from former tabifying...		this.$tabs.unbind('.tabs').bind(o.event, function() {			//var trueClick = e.clientX; // add to history only if true click occured, not a triggered click			var $li = $(this).parents('li:eq(0)'),				$hide = self.$panels.filter(':visible'),				$show = $(this.hash);			// If tab is already selected and not unselectable or tab disabled or 			// or is already loading or click callback returns false stop here.			// Check if click handler returns false last so that it is not executed			// for a disabled or loading tab!			if (($li.hasClass(o.selectedClass) && !o.unselect)				|| $li.hasClass(o.disabledClass) 				|| $(this).hasClass(o.loadingClass)				|| $(self.element).triggerHandler('tabsselect', [null, self.ui(this, $show[0])], o.select) === false				) {				this.blur();				return false;			}			self.options.selected = self.$tabs.index(this);			// if tab may be closed			if (o.unselect) {				if ($li.hasClass(o.selectedClass)) {					self.options.selected = null;					$li.removeClass(o.selectedClass);					self.$panels.stop();					hideTab(this, $hide);					this.blur();					return false;				} else if (!$hide.length) {					self.$panels.stop();					var a = this;					self.load(self.$tabs.index(this), function() {						$li.addClass(o.selectedClass).addClass(o.unselectClass);						showTab(a, $show);					});					this.blur();					return false;				}			}			if (o.cookie)				$.cookie('ui-tabs' + $.data(self.element), self.options.selected, o.cookie);			// stop possibly running animations			self.$panels.stop();			// show new tab			if ($show.length) {				// prevent scrollbar scrolling to 0 and than back in IE7, happens only if bookmarking/history is enabled				/*if ($.browser.msie && o.bookmarkable) {					var showId = this.hash.replace('#', '');					$show.attr('id', '');					setTimeout(function() {						$show.attr('id', showId); // restore id					}, 0);				}*/				var a = this;				self.load(self.$tabs.index(this), $hide.length ? 					function() {						switchTab(a, $li, $hide, $show);					} :					function() {						$li.addClass(o.selectedClass);						showTab(a, $show);					}				);				// Set scrollbar to saved position - need to use timeout with 0 to prevent browser scroll to target of hash				/*var scrollX = window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft || 0;				var scrollY = window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop || 0;				setTimeout(function() {					scrollTo(scrollX, scrollY);				}, 0);*/			} else				throw 'jQuery UI Tabs: Mismatching fragment identifier.';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产盗摄精品一区二区三区在线| 国产不卡一区视频| 国产一区二区精品久久99| 91在线看国产| 日韩欧美在线不卡| 亚洲免费电影在线| 国模冰冰炮一区二区| 欧美性大战久久久久久久| 国产性做久久久久久| 亚洲成a人v欧美综合天堂| 国产一区二区视频在线| 欧美色电影在线| 国产精品久久午夜夜伦鲁鲁| 麻豆视频观看网址久久| 精品视频全国免费看| 久久精品夜色噜噜亚洲a∨| 免费成人小视频| 欧洲av一区二区嗯嗯嗯啊| 中文字幕不卡的av| 国产精品自拍网站| 日韩午夜激情电影| 亚洲自拍欧美精品| 91麻豆精品秘密| 久久久久久久久久久久久久久99 | 亚洲一区二区三区四区五区中文| 国产精品中文字幕欧美| 欧美高清视频不卡网| 亚洲欧洲另类国产综合| 成人爱爱电影网址| 男女激情视频一区| 国产精品久久久久一区二区三区| 欧美日韩不卡在线| 91网页版在线| 久久综合久久鬼色| 国产一区 二区| av电影在线观看一区| 亚洲国产欧美一区二区三区丁香婷| 91精品麻豆日日躁夜夜躁| av欧美精品.com| 成人综合婷婷国产精品久久蜜臀| 国产综合色视频| 久久久五月婷婷| 性做久久久久久免费观看欧美| 国产欧美一区二区精品性色| 国产精品一区二区在线观看网站| 亚洲精品一线二线三线| 国产成人免费xxxxxxxx| 国产网站一区二区三区| www.亚洲国产| 亚洲精品免费在线| 欧美三片在线视频观看| 亚洲1区2区3区视频| 欧美乱熟臀69xxxxxx| 日本亚洲电影天堂| 91精品国产综合久久精品图片| 免费高清不卡av| 色国产精品一区在线观看| 亚洲18色成人| 欧美成人aa大片| 国产成人av电影在线| 亚洲女同女同女同女同女同69| 欧洲一区在线观看| 蜜芽一区二区三区| 久久九九99视频| 色哟哟一区二区在线观看 | 国产精品亚洲视频| 国产精品福利电影一区二区三区四区| 国产精品资源在线看| 国产视频一区在线播放| 91在线国内视频| 亚洲综合一二三区| 欧美猛男gaygay网站| 日本欧美一区二区| 中文字幕亚洲一区二区av在线 | 亚洲国产成人av好男人在线观看| 欧美高清激情brazzers| 成人免费看黄yyy456| 亚洲黄色录像片| 精品噜噜噜噜久久久久久久久试看| 国产91富婆露脸刺激对白| 亚洲综合视频网| 国产人成一区二区三区影院| 欧美在线视频日韩| 国产91精品免费| 日韩综合小视频| 国产亚洲一区二区三区四区| 欧美性xxxxxxxx| 成人avav影音| 奇米四色…亚洲| 亚洲男人的天堂一区二区| 精品三级在线看| 日本韩国一区二区三区| 国产一二精品视频| 婷婷综合另类小说色区| 欧美激情一区不卡| 欧美成va人片在线观看| 在线免费一区三区| 免费在线视频一区| 亚洲影院久久精品| 国产精品的网站| 国产午夜亚洲精品不卡| 欧美一二三区精品| 欧美高清一级片在线| 欧美综合一区二区| 91视频一区二区| 99麻豆久久久国产精品免费优播| 久久精品免费观看| 久色婷婷小香蕉久久| 日韩av二区在线播放| 婷婷激情综合网| 亚洲国产视频一区二区| 一区二区三区四区国产精品| 亚洲国产成人自拍| 久久美女高清视频| 精品国产1区二区| 久久综合丝袜日本网| 欧美群妇大交群的观看方式| 色拍拍在线精品视频8848| 日本福利一区二区| 成人a级免费电影| 国产一区不卡视频| 午夜免费欧美电影| 亚洲视频资源在线| 亚洲欧洲国产日韩| 久久久www成人免费毛片麻豆| 欧美一区二区三区在线视频| 欧美日韩精品电影| 8v天堂国产在线一区二区| 欧美精品 国产精品| 欧美v国产在线一区二区三区| 日韩精品专区在线影院观看| 91精品国产一区二区三区香蕉| 91精品国产综合久久国产大片| 日韩一二三区视频| 久久久精品欧美丰满| 国产午夜精品久久久久久久| 国产丝袜欧美中文另类| 国产精品乱人伦一区二区| 中文字幕亚洲成人| 亚洲自拍偷拍网站| 日韩电影在线看| 国产毛片一区二区| 99re亚洲国产精品| 欧美日韩精品欧美日韩精品一| 91精品国产高清一区二区三区 | 免费成人在线网站| 丰满放荡岳乱妇91ww| 99在线精品免费| 91精品国产综合久久久久| 国产亚洲精久久久久久| 亚洲欧美另类小说视频| 偷窥少妇高潮呻吟av久久免费| 久久精品99国产精品日本| 国产激情一区二区三区| 一本高清dvd不卡在线观看| 欧美日韩精品专区| 久久女同性恋中文字幕| 中文字幕在线不卡| 五月开心婷婷久久| 国产揄拍国内精品对白| av成人免费在线观看| 欧美性大战久久久久久久| 精品免费日韩av| 亚洲免费在线观看| 久久成人免费网站| 91免费观看视频| 国产视频一区二区在线观看| 午夜久久久影院| 91视频观看视频| 久久综合久久综合久久综合| 国产精品不卡在线观看| 日韩影院免费视频| 成人动漫精品一区二区| 欧美一区二区三区日韩视频| 久久九九国产精品| 亚洲狠狠丁香婷婷综合久久久| 欧美国产日本视频| 午夜视频一区二区| 国产成人av在线影院| 欧美精品一卡二卡| 国产精品美女久久久久久久| 日韩电影在线观看网站| 99久免费精品视频在线观看| 日韩欧美激情四射| 亚洲午夜成aⅴ人片| 成人精品视频网站| 欧美日本乱大交xxxxx| 欧美激情中文不卡| 另类中文字幕网| 欧美日韩精品二区第二页| 日韩毛片精品高清免费| 国产**成人网毛片九色| 久久男人中文字幕资源站| 日韩高清不卡一区二区| 色婷婷久久久综合中文字幕| 国产精品美女久久久久久2018| 国产精品一区二区无线| 日韩欧美国产成人一区二区| 精品一区二区三区免费毛片爱| 日韩亚洲欧美一区|