⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prototype.tab.js

📁 本源代码为turboshop提供的免费的j2ee框架的网络商城系统
💻 JS
字号:
/** * @author Ryan Johnson <ryan@livepipe.net> * @copyright 2007 LivePipe LLC * @package Control.Tabs * @license MIT * @url http://livepipe.net/projects/control_tabs/ * @version 2.1.0 */if(typeof(Control) == 'undefined')	var Control = {};Control.Tabs = Class.create();Object.extend(Control.Tabs,{	instances: [],	findByTabId: function(id){		return Control.Tabs.instances.find(function(tab){			return tab.links.find(function(link){				return link.key == id;			});		});	}});Object.extend(Control.Tabs.prototype,{	initialize: function(tab_list_container,options){		this.activeContainer = false;		this.activeLink = false;		this.containers = $H({});		this.links = [];		Control.Tabs.instances.push(this);		this.options = {			beforeChange: Prototype.emptyFunction,			afterChange: Prototype.emptyFunction,			hover: false,			linkSelector: 'li a',			setClassOnContainer: false,			activeClassName: 'active',			defaultTab: 'first',			autoLinkExternal: true,			targetRegExp: /#(.+)$/,			showFunction: Element.show,			hideFunction: Element.hide		};		Object.extend(this.options,options || {});		(typeof(this.options.linkSelector == 'string')			? $(tab_list_container).getElementsBySelector(this.options.linkSelector)			: this.options.linkSelector($(tab_list_container))		).findAll(function(link){			return (/^#/).exec(link.href.replace(window.location.href.split('#')[0],''));		}).each(function(link){			this.addTab(link);		}.bind(this));		this.containers.values().each(Element.hide);		if(this.options.defaultTab == 'first')			this.setActiveTab(this.links.first());		else if(this.options.defaultTab == 'last')			this.setActiveTab(this.links.last());		else			this.setActiveTab(this.options.defaultTab);		var targets = this.options.targetRegExp.exec(window.location);		if(targets && targets[1]){			targets[1].split(',').each(function(target){				this.links.each(function(target,link){					if(link.key == target){						this.setActiveTab(link);						throw $break;					}				}.bind(this,target));			}.bind(this));		}		if(this.options.autoLinkExternal){			$A(document.getElementsByTagName('a')).each(function(a){				if(!this.links.include(a)){					var clean_href = a.href.replace(window.location.href.split('#')[0],'');					if(clean_href.substring(0,1) == '#'){						if(this.containers.keys().include(clean_href.substring(1))){							$(a).observe('click',function(event,clean_href){								this.setActiveTab(clean_href.substring(1));							}.bindAsEventListener(this,clean_href));						}					}				}			}.bind(this));		}	},	addTab: function(link){		this.links.push(link);		link.key = link.getAttribute('href').replace(window.location.href.split('#')[0],'').split('/').last().replace(/#/,'');		this.containers[link.key] = $(link.key);		link[this.options.hover ? 'onmouseover' : 'onclick'] = function(link){			if(window.event)				Event.stop(window.event);			this.setActiveTab(link);			return false;		}.bind(this,link);	},	setActiveTab: function(link){		if(!link)			return;		if(typeof(link) == 'string'){			this.links.each(function(_link){				if(_link.key == link){					this.setActiveTab(_link);					throw $break;				}			}.bind(this));		}else{			this.notify('beforeChange',this.activeContainer);			if(this.activeContainer)				this.options.hideFunction(this.activeContainer);			this.links.each(function(item){				(this.options.setClassOnContainer ? $(item.parentNode) : item).removeClassName(this.options.activeClassName);			}.bind(this));			(this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.activeClassName);			this.activeContainer = this.containers[link.key];			this.activeLink = link;			this.options.showFunction(this.containers[link.key]);			this.notify('afterChange',this.containers[link.key]);		}	},	next: function(){		this.links.each(function(link,i){			if(this.activeLink == link && this.links[i + 1]){				this.setActiveTab(this.links[i + 1]);				throw $break;			}		}.bind(this));		return false;	},	previous: function(){		this.links.each(function(link,i){			if(this.activeLink == link && this.links[i - 1]){				this.setActiveTab(this.links[i - 1]);				throw $break;			}		}.bind(this));		return false;	},	first: function(){		this.setActiveTab(this.links.first());		return false;	},	last: function(){		this.setActiveTab(this.links.last());		return false;	},	notify: function(event_name){		try{			if(this.options[event_name])				return [this.options[event_name].apply(this.options[event_name],$A(arguments).slice(1))];		}catch(e){			if(e != $break)				throw e;			else				return false;		}	}});if(typeof(Object.Event) != 'undefined')	Object.Event.extend(Control.Tabs);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -