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

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

?? manager.js

?? 圖書管理系統包括圖書的增加、刪除、修改等功能
?? JS
字號:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.Manager");dojo.require("dojo.lang.array");dojo.require("dojo.lang.func");dojo.require("dojo.event.*");// Manager classdojo.widget.manager = new function(){	this.widgets = [];	this.widgetIds = [];		// map of widgetId-->widget for widgets without parents (top level widgets)	this.topWidgets = {};	var widgetTypeCtr = {};	var renderPrefixCache = [];	this.getUniqueId = function (widgetType) {		return widgetType + "_" + (widgetTypeCtr[widgetType] != undefined ?			++widgetTypeCtr[widgetType] : widgetTypeCtr[widgetType] = 0);	}	this.add = function(widget){		dojo.profile.start("dojo.widget.manager.add");		this.widgets.push(widget);		// Opera9 uses ID (caps)		if(!widget.extraArgs["id"]){			widget.extraArgs["id"] = widget.extraArgs["ID"];		}		// FIXME: the rest of this method is very slow!		if(widget.widgetId == ""){			if(widget["id"]){				widget.widgetId = widget["id"];			}else if(widget.extraArgs["id"]){				widget.widgetId = widget.extraArgs["id"];			}else{				widget.widgetId = this.getUniqueId(widget.widgetType);			}		}		if(this.widgetIds[widget.widgetId]){			dojo.debug("widget ID collision on ID: "+widget.widgetId);		}		this.widgetIds[widget.widgetId] = widget;		// Widget.destroy already calls removeById(), so we don't need to		// connect() it here		dojo.profile.end("dojo.widget.manager.add");	}	this.destroyAll = function(){		for(var x=this.widgets.length-1; x>=0; x--){			try{				// this.widgets[x].destroyChildren();				this.widgets[x].destroy(true);				delete this.widgets[x];			}catch(e){ }		}	}	// FIXME: we should never allow removal of the root widget until all others	// are removed!	this.remove = function(widgetIndex){		var tw = this.widgets[widgetIndex].widgetId;		delete this.widgetIds[tw];		this.widgets.splice(widgetIndex, 1);	}		// FIXME: suboptimal performance	this.removeById = function(id) {		for (var i=0; i<this.widgets.length; i++){			if(this.widgets[i].widgetId == id){				this.remove(i);				break;			}		}	}	this.getWidgetById = function(id){		return this.widgetIds[id];	}	this.getWidgetsByType = function(type){		var lt = type.toLowerCase();		var ret = [];		dojo.lang.forEach(this.widgets, function(x){			if(x.widgetType.toLowerCase() == lt){				ret.push(x);			}		});		return ret;	}	this.getWidgetsOfType = function (id) {		dojo.deprecated("getWidgetsOfType", "use getWidgetsByType", "0.4");		return dojo.widget.manager.getWidgetsByType(id);	}	this.getWidgetsByFilter = function(unaryFunc, onlyOne){		var ret = [];		dojo.lang.every(this.widgets, function(x){			if(unaryFunc(x)){				ret.push(x);				if(onlyOne){return false;}			}			return true;		});		return (onlyOne ? ret[0] : ret);	}	this.getAllWidgets = function() {		return this.widgets.concat();	}	//	added, trt 2006-01-20	this.getWidgetByNode = function(/* DOMNode */ node){		var w=this.getAllWidgets();		for (var i=0; i<w.length; i++){			if (w[i].domNode==node){				return w[i];			}		}		return null;	}	// shortcuts, baby	this.byId = this.getWidgetById;	this.byType = this.getWidgetsByType;	this.byFilter = this.getWidgetsByFilter;	this.byNode = this.getWidgetByNode;	// map of previousally discovered implementation names to constructors	var knownWidgetImplementations = {};	// support manually registered widget packages	var widgetPackages = ["dojo.widget"];	for (var i=0; i<widgetPackages.length; i++) {		// convenience for checking if a package exists (reverse lookup)		widgetPackages[widgetPackages[i]] = true;	}	this.registerWidgetPackage = function(pname) {		if(!widgetPackages[pname]){			widgetPackages[pname] = true;			widgetPackages.push(pname);		}	}		this.getWidgetPackageList = function() {		return dojo.lang.map(widgetPackages, function(elt) { return(elt!==true ? elt : undefined); });	}		this.getImplementation = function(widgetName, ctorObject, mixins){		// try and find a name for the widget		var impl = this.getImplementationName(widgetName);		if(impl){ 			// var tic = new Date();			var ret = new impl(ctorObject);			// dojo.debug(new Date() - tic);			return ret;		}	}	this.getImplementationName = function(widgetName){		/*		 * This is the overly-simplistic implemention of getImplementation (har		 * har). In the future, we are going to want something that allows more		 * freedom of expression WRT to specifying different specializations of		 * a widget.		 *		 * Additionally, this implementation treats widget names as case		 * insensitive, which does not necessarialy mesh with the markup which		 * can construct a widget.		 */		var lowerCaseWidgetName = widgetName.toLowerCase();		var impl = knownWidgetImplementations[lowerCaseWidgetName];		if(impl){			return impl;		}		// first store a list of the render prefixes we are capable of rendering		if(!renderPrefixCache.length){			for(var renderer in dojo.render){				if(dojo.render[renderer]["capable"] === true){					var prefixes = dojo.render[renderer].prefixes;					for(var i = 0; i < prefixes.length; i++){						renderPrefixCache.push(prefixes[i].toLowerCase());					}				}			}			// make sure we don't HAVE to prefix widget implementation names			// with anything to get them to render			renderPrefixCache.push("");		}		// look for a rendering-context specific version of our widget name		for(var i = 0; i < widgetPackages.length; i++){			var widgetPackage = dojo.evalObjPath(widgetPackages[i]);			if(!widgetPackage) { continue; }			for (var j = 0; j < renderPrefixCache.length; j++) {				if (!widgetPackage[renderPrefixCache[j]]) { continue; }				for (var widgetClass in widgetPackage[renderPrefixCache[j]]) {					if (widgetClass.toLowerCase() != lowerCaseWidgetName) { continue; }					knownWidgetImplementations[lowerCaseWidgetName] =						widgetPackage[renderPrefixCache[j]][widgetClass];					return knownWidgetImplementations[lowerCaseWidgetName];				}			}			for (var j = 0; j < renderPrefixCache.length; j++) {				for (var widgetClass in widgetPackage) {					if (widgetClass.toLowerCase() !=						(renderPrefixCache[j] + lowerCaseWidgetName)) { continue; }						knownWidgetImplementations[lowerCaseWidgetName] =						widgetPackage[widgetClass];					return knownWidgetImplementations[lowerCaseWidgetName];				}			}		}				throw new Error('Could not locate "' + widgetName + '" class');	}	// FIXME: does it even belong in this name space?	// NOTE: this method is implemented by DomWidget.js since not all	// hostenv's would have an implementation.	/*this.getWidgetFromPrimitive = function(baseRenderType){		dojo.unimplemented("dojo.widget.manager.getWidgetFromPrimitive");	}	this.getWidgetFromEvent = function(nativeEvt){		dojo.unimplemented("dojo.widget.manager.getWidgetFromEvent");	}*/	// Catch window resize events and notify top level widgets	this.resizing=false;	this.onWindowResized = function(){		if(this.resizing){			return;	// duplicate event		}		try{			this.resizing=true;			for(var id in this.topWidgets){				var child = this.topWidgets[id];				if(child.checkSize ){					child.checkSize();				}			};		}catch(e){		}finally{			this.resizing=false;		}	}	if(typeof window != "undefined") {		dojo.addOnLoad(this, 'onWindowResized');							// initial sizing		dojo.event.connect(window, 'onresize', this, 'onWindowResized');	// window resize	}	// FIXME: what else?};(function(){	var dw = dojo.widget;	var dwm = dw.manager;	var h = dojo.lang.curry(dojo.lang, "hitch", dwm);	var g = function(oldName, newName){		dw[(newName||oldName)] = h(oldName);	}	// copy the methods from the default manager (this) to the widget namespace	g("add", "addWidget");	g("destroyAll", "destroyAllWidgets");	g("remove", "removeWidget");	g("removeById", "removeWidgetById");	g("getWidgetById");	g("getWidgetById", "byId");	g("getWidgetsByType");	g("getWidgetsByFilter");	g("getWidgetsByType", "byType");	g("getWidgetsByFilter", "byFilter");	g("getWidgetByNode", "byNode");	dw.all = function(n){		var widgets = dwm.getAllWidgets.apply(dwm, arguments);		if(arguments.length > 0) {			return widgets[n];		}		return widgets;	}	g("registerWidgetPackage");	g("getImplementation", "getWidgetImplementation");	g("getImplementationName", "getWidgetImplementationName");	dw.widgets = dwm.widgets;	dw.widgetIds = dwm.widgetIds;	dw.root = dwm.root;})();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本电影在线| 亚洲日本欧美天堂| 3d动漫精品啪啪一区二区竹菊| 亚洲男人的天堂av| 一本色道综合亚洲| 亚洲精品亚洲人成人网| 欧美国产激情一区二区三区蜜月| 精品嫩草影院久久| 国产无一区二区| 国产精品久久久久久户外露出| 日本一区二区综合亚洲| 亚洲国产高清在线观看视频| 国产精品国产三级国产| 一区二区三区小说| 日日夜夜一区二区| 国产一区二区在线观看免费| 国产成人在线看| 91黄视频在线| 欧美一区二区日韩| 欧美国产一区二区| 亚洲国产欧美另类丝袜| 蜜桃视频一区二区三区在线观看| 狠狠色综合色综合网络| 99久久婷婷国产综合精品| 在线精品亚洲一区二区不卡| 91麻豆精品国产| 欧美激情资源网| 亚洲一二三专区| 国产一区二区在线观看视频| 95精品视频在线| 91精品国产91久久综合桃花| 欧美经典三级视频一区二区三区| 亚洲日本电影在线| 精品一区二区三区免费播放| www.爱久久.com| 日韩免费视频一区| 亚洲精品国产高清久久伦理二区| 久久se这里有精品| 一本一道久久a久久精品| 精品国产欧美一区二区| 亚洲欧美国产高清| 国产精品资源在线观看| 欧美日韩国产一区二区三区地区| 久久久国产精品麻豆| 亚洲自拍偷拍网站| 99热这里都是精品| 精品国产一区二区国模嫣然| 五月天激情综合网| 91啪九色porn原创视频在线观看| 亚洲综合999| 99精品视频在线免费观看| 精品日韩av一区二区| 午夜视频在线观看一区| 99国产精品久久久久久久久久久 | 成人av第一页| 日韩欧美精品在线视频| 亚洲国产美女搞黄色| www.欧美日韩| 国产人妖乱国产精品人妖| 日本不卡123| 91精品国产高清一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 看电影不卡的网站| 91精品国产黑色紧身裤美女| 亚洲第一精品在线| 欧美专区在线观看一区| 国产精品看片你懂得| 国产精品一区三区| 欧美tickling网站挠脚心| 日韩av一级电影| 欧美三级电影一区| 亚洲大片免费看| 欧洲亚洲精品在线| 亚洲国产精品一区二区久久恐怖片| 成人国产精品免费观看动漫| 久久欧美中文字幕| 国产精品一区二区无线| 国产欧美一区二区三区网站 | 国产91精品一区二区麻豆网站| 日韩美女主播在线视频一区二区三区| 性做久久久久久免费观看| 在线观看三级视频欧美| 亚洲一区二区在线免费观看视频| 色婷婷国产精品综合在线观看| 亚洲色图欧洲色图| 91麻豆精品视频| 一区二区三区中文字幕电影| 色狠狠色狠狠综合| 亚洲电影第三页| 欧美精品乱码久久久久久按摩| 性感美女极品91精品| 67194成人在线观看| 狠狠色伊人亚洲综合成人| 国产欧美一区二区三区沐欲| 国产精品99精品久久免费| 国产精品成人免费在线| 欧美性猛交xxxxxxxx| 免费av网站大全久久| 亚洲精品一区二区三区福利| 国产成人免费高清| 亚洲人成电影网站色mp4| 精品视频在线看| 狠狠色丁香婷婷综合| 国产精品亲子伦对白| 欧美三区在线观看| 国产91在线观看丝袜| 亚洲一区二区欧美| 久久久无码精品亚洲日韩按摩| 91亚洲国产成人精品一区二三| 亚洲bdsm女犯bdsm网站| 国产女人水真多18毛片18精品视频| 91麻豆高清视频| 麻豆精品新av中文字幕| 亚洲欧美在线视频| 日韩欧美一卡二卡| 日本韩国欧美三级| 国产中文字幕一区| 亚洲成人久久影院| 国产精品传媒在线| 精品国产凹凸成av人网站| av一区二区不卡| 精品一区二区久久| 亚洲精品视频在线观看免费| 精品免费99久久| 欧美性高清videossexo| 国产成人免费网站| 毛片不卡一区二区| 一区二区三区免费在线观看| 国产校园另类小说区| 欧美一级片免费看| 欧美日韩亚州综合| 91久久人澡人人添人人爽欧美| 国产一区二区三区不卡在线观看 | 国产精品日韩精品欧美在线| 欧美一区二区三区视频| 色乱码一区二区三区88| 成人蜜臀av电影| 国产麻豆日韩欧美久久| 蜜臀av国产精品久久久久| 亚洲午夜一二三区视频| 亚洲人成7777| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产福利一区二区| 激情文学综合丁香| 精品写真视频在线观看| 日韩二区三区在线观看| 午夜精品成人在线| 天堂蜜桃一区二区三区| 午夜久久久影院| 亚洲精品菠萝久久久久久久| 综合色天天鬼久久鬼色| 亚洲欧洲成人av每日更新| 欧美激情一区二区三区蜜桃视频| 精品99一区二区| 欧美tickling网站挠脚心| 欧美mv日韩mv国产网站app| 欧美日韩国产三级| 欧美日韩一区在线| 欧美三级电影一区| 欧美一区二区三区男人的天堂| 777xxx欧美| 日韩一区和二区| 欧美精品一区二区三区在线播放 | 丁香天五香天堂综合| 成人a免费在线看| a级高清视频欧美日韩| 成人av综合在线| 在线精品视频一区二区| 欧美精品777| 欧美va日韩va| 国产精品伦理一区二区| 亚洲一区二区三区中文字幕| 视频一区二区不卡| 国产iv一区二区三区| 91美女片黄在线观看91美女| 欧美日韩精品高清| 精品久久久久99| 亚洲素人一区二区| 日韩精品电影一区亚洲| 国产在线精品视频| 91久久人澡人人添人人爽欧美| 91精品国产一区二区| 国产午夜精品久久久久久免费视 | 亚洲一区中文日韩| 美女任你摸久久| 91网站最新地址| 91精品国产品国语在线不卡| 国产欧美一区二区精品性| 亚洲国产一区在线观看| 国模大尺度一区二区三区| 91亚洲精品一区二区乱码| 欧美一区二区三区人| 自拍偷拍亚洲激情| 九一九一国产精品| 91久久国产综合久久| 精品国产sm最大网站免费看| 亚洲精品高清在线| 国产乱理伦片在线观看夜一区| 在线日韩国产精品| 国产日韩综合av|