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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? htmldragmanager.js

?? 圖書管理系統(tǒng)包括圖書的增加、刪除、修改等功能
?? 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.dnd.HtmlDragManager");dojo.require("dojo.dnd.DragAndDrop");dojo.require("dojo.event.*");dojo.require("dojo.lang.array");dojo.require("dojo.html");dojo.require("dojo.style");// NOTE: there will only ever be a single instance of HTMLDragManager, so it's// safe to use prototype properties for book-keeping.dojo.dnd.HtmlDragManager = function(){}dojo.inherits(dojo.dnd.HtmlDragManager, dojo.dnd.DragManager);dojo.lang.extend(dojo.dnd.HtmlDragManager, {	/**	 * There are several sets of actions that the DnD code cares about in the	 * HTML context:	 *	1.) mouse-down ->	 *			(draggable selection)	 *			(dragObject generation)	 *		mouse-move ->	 *			(draggable movement)	 *			(droppable detection)	 *			(inform droppable)	 *			(inform dragObject)	 *		mouse-up	 *			(inform/destroy dragObject)	 *			(inform draggable)	 *			(inform droppable)	 *	2.) mouse-down -> mouse-down	 *			(click-hold context menu)	 *	3.) mouse-click ->	 *			(draggable selection)	 *		shift-mouse-click ->	 *			(augment draggable selection)	 *		mouse-down ->	 *			(dragObject generation)	 *		mouse-move ->	 *			(draggable movement)	 *			(droppable detection)	 *			(inform droppable)	 *			(inform dragObject)	 *		mouse-up	 *			(inform draggable)	 *			(inform droppable)	 *	4.) mouse-up	 *			(clobber draggable selection)	 */	disabled: false, // to kill all dragging!	nestedTargets: false,	mouseDownTimer: null, // used for click-hold operations	dsCounter: 0,	dsPrefix: "dojoDragSource",	// dimension calculation cache for use durring drag	dropTargetDimensions: [],	currentDropTarget: null,	// currentDropTargetPoints: null,	previousDropTarget: null,	_dragTriggered: false,	selectedSources: [],	dragObjects: [],	// mouse position properties	currentX: null,	currentY: null,	lastX: null,	lastY: null,	mouseDownX: null,	mouseDownY: null,	threshold: 7,	dropAcceptable: false,	cancelEvent: function(e){ e.stopPropagation(); e.preventDefault();},	// method over-rides	registerDragSource: function(ds){		if(ds["domNode"]){			// FIXME: dragSource objects SHOULD have some sort of property that			// references their DOM node, we shouldn't just be passing nodes and			// expecting it to work.			var dp = this.dsPrefix;			var dpIdx = dp+"Idx_"+(this.dsCounter++);			ds.dragSourceId = dpIdx;			this.dragSources[dpIdx] = ds;			ds.domNode.setAttribute(dp, dpIdx);			// so we can drag links			if(dojo.render.html.ie){				dojo.event.connect(ds.domNode, "ondragstart", this.cancelEvent);			}		}	},	unregisterDragSource: function(ds){		if (ds["domNode"]){			var dp = this.dsPrefix;			var dpIdx = ds.dragSourceId;			delete ds.dragSourceId;			delete this.dragSources[dpIdx];			ds.domNode.setAttribute(dp, null);		}		if(dojo.render.html.ie){			dojo.event.disconnect(ds.domNode, "ondragstart", this.cancelEvent );		}	},	registerDropTarget: function(dt){		this.dropTargets.push(dt);	},	unregisterDropTarget: function(dt){		var index = dojo.lang.find(this.dropTargets, dt, true);		if (index>=0) {			this.dropTargets.splice(index, 1);		}	},	/**	* Get the DOM element that is meant to drag.	* Loop through the parent nodes of the event target until	* the element is found that was created as a DragSource and 	* return it.	*	* @param event object The event for which to get the drag source.	*/	getDragSource: function(e){		var tn = e.target;		if(tn === document.body){ return; }		var ta = dojo.html.getAttribute(tn, this.dsPrefix);		while((!ta)&&(tn)){			tn = tn.parentNode;			if((!tn)||(tn === document.body)){ return; }			ta = dojo.html.getAttribute(tn, this.dsPrefix);		}		return this.dragSources[ta];	},	onKeyDown: function(e){	},	onMouseDown: function(e){		if(this.disabled) { return; }		// only begin on left click		if(dojo.render.html.ie) {			if(e.button != 1) { return; }		} else if(e.which != 1) {			return;		}		var target = e.target.nodeType == dojo.dom.TEXT_NODE ?			e.target.parentNode : e.target;		// do not start drag involvement if the user is interacting with		// a form element.		if(dojo.html.isTag(target, "button", "textarea", "input", "select", "option")) {			return;		}		// find a selection object, if one is a parent of the source node		var ds = this.getDragSource(e);				// this line is important.  if we aren't selecting anything then		// we need to return now, so preventDefault() isn't called, and thus		// the event is propogated to other handling code		if(!ds){ return; }		if(!dojo.lang.inArray(this.selectedSources, ds)){			this.selectedSources.push(ds);			ds.onSelected();		} 		this.mouseDownX = e.pageX; 		this.mouseDownY = e.pageY;		// Must stop the mouse down from being propogated, or otherwise can't		// drag links in firefox.		// WARNING: preventing the default action on all mousedown events		// prevents user interaction with the contents.		e.preventDefault();		dojo.event.connect(document, "onmousemove", this, "onMouseMove");	},	onMouseUp: function(e, cancel){		// if we aren't dragging then ignore the mouse-up		// (in particular, don't call preventDefault(), because other		// code may need to process this event)		if(this.selectedSources.length==0){			return;		}		this.mouseDownX = null;		this.mouseDownY = null;		this._dragTriggered = false; 		// e.preventDefault();		e.dragSource = this.dragSource;		if((!e.shiftKey)&&(!e.ctrlKey)){			if(this.currentDropTarget) {				this.currentDropTarget.onDropStart();			}			dojo.lang.forEach(this.dragObjects, function(tempDragObj){				var ret = null;				if(!tempDragObj){ return; }				if(this.currentDropTarget) {					e.dragObject = tempDragObj;					// NOTE: we can't get anything but the current drop target					// here since the drag shadow blocks mouse-over events.					// This is probelematic for dropping "in" something					var ce = this.currentDropTarget.domNode.childNodes;					if(ce.length > 0){						e.dropTarget = ce[0];						while(e.dropTarget == tempDragObj.domNode){							e.dropTarget = e.dropTarget.nextSibling;						}					}else{						e.dropTarget = this.currentDropTarget.domNode;					}					if(this.dropAcceptable){						ret = this.currentDropTarget.onDrop(e);					}else{						 this.currentDropTarget.onDragOut(e);					}				}				e.dragStatus = this.dropAcceptable && ret ? "dropSuccess" : "dropFailure";				// decouple the calls for onDragEnd, so they don't block the execution here				// ie. if the onDragEnd would call an alert, the execution here is blocked until the				// user has confirmed the alert box and then the rest of the dnd code is executed				// while the mouse doesnt "hold" the dragged object anymore ... and so on				dojo.lang.delayThese([					function() {						// in FF1.5 this throws an exception, see 						// http://dojotoolkit.org/pipermail/dojo-interest/2006-April/006751.html						try{							tempDragObj.dragSource.onDragEnd(e)						} catch(err) {							// since the problem seems passing e, we just copy all 							// properties and try the copy ...							var ecopy = {};							for (var i in e) {								if (i=="type") { // the type property contains the exception, no idea why...									ecopy.type = "mouseup";									continue;								}								ecopy[i] = e[i];							}							tempDragObj.dragSource.onDragEnd(ecopy);						}					}					, function() {tempDragObj.onDragEnd(e)}]);			}, this);			this.selectedSources = [];			this.dragObjects = [];			this.dragSource = null;			if(this.currentDropTarget) {				this.currentDropTarget.onDropEnd();			}		}		dojo.event.disconnect(document, "onmousemove", this, "onMouseMove");		this.currentDropTarget = null;	},	onScroll: function(){		for(var i = 0; i < this.dragObjects.length; i++) {			if(this.dragObjects[i].updateDragOffset) {				this.dragObjects[i].updateDragOffset();			}		}		// TODO: do not recalculate, only adjust coordinates		this.cacheTargetLocations();	},	_dragStartDistance: function(x, y){		if((!this.mouseDownX)||(!this.mouseDownX)){			return;		}		var dx = Math.abs(x-this.mouseDownX);		var dx2 = dx*dx;		var dy = Math.abs(y-this.mouseDownY);		var dy2 = dy*dy;		return parseInt(Math.sqrt(dx2+dy2), 10);	},	cacheTargetLocations: function(){		this.dropTargetDimensions = [];		dojo.lang.forEach(this.dropTargets, function(tempTarget){			var tn = tempTarget.domNode;			if(!tn){ return; }			var ttx = dojo.style.getAbsoluteX(tn, true);			var tty = dojo.style.getAbsoluteY(tn, true);			this.dropTargetDimensions.push([				[ttx, tty],	// upper-left				// lower-right				[ ttx+dojo.style.getInnerWidth(tn), tty+dojo.style.getInnerHeight(tn) ],				tempTarget			]);			//dojo.debug("Cached for "+tempTarget)		}, this);		//dojo.debug("Cache locations")	},	onMouseMove: function(e){		if((dojo.render.html.ie)&&(e.button != 1)){			// Oooops - mouse up occurred - e.g. when mouse was not over the			// window. I don't think we can detect this for FF - but at least			// we can be nice in IE.			this.currentDropTarget = null;			this.onMouseUp(e, true);			return;		}		// if we've got some sources, but no drag objects, we need to send		// onDragStart to all the right parties and get things lined up for		// drop target detection		if(	(this.selectedSources.length)&&			(!this.dragObjects.length) ){			var dx;			var dy;			if(!this._dragTriggered){				this._dragTriggered = (this._dragStartDistance(e.pageX, e.pageY) > this.threshold);				if(!this._dragTriggered){ return; }				dx = e.pageX - this.mouseDownX;				dy = e.pageY - this.mouseDownY;			}			// the first element is always our dragSource, if there are multiple			// selectedSources (elements that move along) then the first one is the master			// and for it the events will be fired etc.			this.dragSource = this.selectedSources[0];						dojo.lang.forEach(this.selectedSources, function(tempSource){				if(!tempSource){ return; }				var tdo = tempSource.onDragStart(e);				if(tdo){					tdo.onDragStart(e);					// "bump" the drag object to account for the drag threshold					tdo.dragOffset.top += dy;					tdo.dragOffset.left += dx;					tdo.dragSource = tempSource;					this.dragObjects.push(tdo);				}			}, this);			/* clean previous drop target in dragStart */			this.previousDropTarget = null;			this.cacheTargetLocations();		}		// FIXME: we need to add dragSources and dragObjects to e		dojo.lang.forEach(this.dragObjects, function(dragObj){			if(dragObj){ dragObj.onDragMove(e); }		});		// if we have a current drop target, check to see if we're outside of		// it. If so, do all the actions that need doing.		if(this.currentDropTarget){			//dojo.debug(dojo.dom.hasParent(this.currentDropTarget.domNode))			var c = dojo.style.toCoordinateArray(this.currentDropTarget.domNode, true);			//		var dtp = this.currentDropTargetPoints;			var dtp = [				[c[0],c[1]], [c[0]+c[2], c[1]+c[3]]			];		}		if((!this.nestedTargets)&&(dtp)&&(this.isInsideBox(e, dtp))){			if(this.dropAcceptable){				this.currentDropTarget.onDragMove(e, this.dragObjects);			}		}else{			// FIXME: need to fix the event object!			// see if we can find a better drop target			var bestBox = this.findBestTarget(e);			if(bestBox.target === null){				if(this.currentDropTarget){					this.currentDropTarget.onDragOut(e);					this.previousDropTarget = this.currentDropTarget;					this.currentDropTarget = null;					// this.currentDropTargetPoints = null;				}				this.dropAcceptable = false;				return;			}			if(this.currentDropTarget !== bestBox.target){				if(this.currentDropTarget){					this.previousDropTarget = this.currentDropTarget;					this.currentDropTarget.onDragOut(e);				}				this.currentDropTarget = bestBox.target;				// this.currentDropTargetPoints = bestBox.points;				e.dragObjects = this.dragObjects;				this.dropAcceptable = this.currentDropTarget.onDragOver(e);			}else{				if(this.dropAcceptable){					this.currentDropTarget.onDragMove(e, this.dragObjects);				}			}		}	},	findBestTarget: function(e) {		var _this = this;		var bestBox = new Object();		bestBox.target = null;		bestBox.points = null;		dojo.lang.every(this.dropTargetDimensions, function(tmpDA) {			if(!_this.isInsideBox(e, tmpDA))				return true;			bestBox.target = tmpDA[2];			bestBox.points = tmpDA;			// continue iterating only if _this.nestedTargets == true			return Boolean(_this.nestedTargets);		});		return bestBox;	},	isInsideBox: function(e, coords){		if(	(e.pageX > coords[0][0])&&			(e.pageX < coords[1][0])&&			(e.pageY > coords[0][1])&&			(e.pageY < coords[1][1]) ){			return true;		}		return false;	},	onMouseOver: function(e){	},	onMouseOut: function(e){	}});dojo.dnd.dragManager = new dojo.dnd.HtmlDragManager();// global namespace protection closure(function(){	var d = document;	var dm = dojo.dnd.dragManager;	// set up event handlers on the document	dojo.event.connect(d, "onkeydown", 		dm, "onKeyDown");	dojo.event.connect(d, "onmouseover",	dm, "onMouseOver");	dojo.event.connect(d, "onmouseout", 	dm, "onMouseOut");	dojo.event.connect(d, "onmousedown",	dm, "onMouseDown");	dojo.event.connect(d, "onmouseup",		dm, "onMouseUp");	// TODO: process scrolling of elements, not only window	dojo.event.connect(window, "onscroll",	dm, "onScroll");})();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩在线观看| 欧美成人三级电影在线| 综合自拍亚洲综合图不卡区| 成a人片国产精品| 亚洲人成网站精品片在线观看| 97国产一区二区| 亚洲午夜久久久久| 88在线观看91蜜桃国自产| 久久99精品久久久久| 国产日产欧美一区| 在线观看视频一区| 日产国产欧美视频一区精品| 久久免费国产精品| www.色综合.com| 图片区小说区区亚洲影院| 日韩欧美国产成人一区二区| 成人黄色国产精品网站大全在线免费观看| 中文字幕不卡在线观看| 欧亚一区二区三区| 精品一区二区三区免费观看| 国产精品久久久爽爽爽麻豆色哟哟| 欧美综合视频在线观看| 精品一区二区三区在线观看国产 | 国产视频一区在线观看| 99re这里只有精品视频首页| 日日夜夜免费精品| 久久久一区二区三区捆绑**| 91久久精品午夜一区二区| 久久福利视频一区二区| 亚洲欧洲av一区二区三区久久| 在线播放亚洲一区| 国产精品亚洲视频| 日日夜夜精品视频免费| 国产精品你懂的在线| 欧美一区二区三区四区视频| 99久精品国产| 国产美女主播视频一区| 丝袜美腿成人在线| 亚洲天堂免费看| 欧美精品一区二区三| 欧美在线观看18| av日韩在线网站| 国内精品久久久久影院薰衣草| 伊人色综合久久天天人手人婷| 久久夜色精品一区| 欧美精品久久一区二区三区| 99在线视频精品| 国产乱码字幕精品高清av | 亚洲欧美偷拍三级| 国产亚洲精品aa午夜观看| 欧美丰满一区二区免费视频| 91色porny蝌蚪| 国产精品小仙女| 久久www免费人成看片高清| 亚洲成a人v欧美综合天堂| 《视频一区视频二区| 国产色产综合色产在线视频| 欧美mv日韩mv亚洲| 4438成人网| 欧美日韩国产片| 欧美亚洲综合一区| 91传媒视频在线播放| 99精品久久久久久| 99久久久精品| av在线不卡电影| 91在线高清观看| 成人精品鲁一区一区二区| 国产精品一区二区三区99| 精品午夜久久福利影院| 久久黄色级2电影| 乱一区二区av| 韩国v欧美v日本v亚洲v| 久久精品国产网站| 久久超碰97人人做人人爱| 久久精品二区亚洲w码| 日本不卡在线视频| 蜜臀av一级做a爰片久久| 视频一区二区不卡| 九色|91porny| 国产在线精品一区二区夜色| 国产在线播精品第三| 国产乱码精品一区二区三区av| 国产成人免费在线观看| 成人av资源网站| 91国模大尺度私拍在线视频| 欧美图区在线视频| 日韩视频国产视频| 久久亚洲免费视频| 国产精品毛片a∨一区二区三区| 国产精品久久久久桃色tv| 亚洲天堂av一区| 丝袜亚洲另类欧美| 国产精品一区在线| 91麻豆swag| 制服.丝袜.亚洲.另类.中文| 欧美电影免费提供在线观看| 国产日产欧美一区二区视频| 亚洲日穴在线视频| 日本va欧美va精品| 成人免费av资源| 欧美体内she精高潮| 欧美一卡二卡在线观看| 中文字幕国产一区| 天天综合网 天天综合色| 国产自产高清不卡| 色视频一区二区| 日韩视频一区二区三区在线播放| 久久综合精品国产一区二区三区 | 国产欧美视频一区二区三区| 亚洲视频每日更新| 蜜桃久久久久久| 99热99精品| 日韩美女一区二区三区四区| 中文字幕高清不卡| 人妖欧美一区二区| 91在线你懂得| 精品久久久久99| 亚洲一区中文日韩| 国产成人亚洲综合a∨猫咪| 欧美综合在线视频| 国产丝袜美腿一区二区三区| 石原莉奈在线亚洲二区| 不卡视频在线看| 日韩写真欧美这视频| 亚洲乱码国产乱码精品精可以看| 日韩中文字幕区一区有砖一区 | 91免费观看视频| 日韩欧美国产三级| 亚洲午夜免费视频| 国产91精品久久久久久久网曝门| 精品视频在线免费| 国产日韩av一区二区| 日韩主播视频在线| 欧美中文字幕一区二区三区亚洲| 久久综合色播五月| 日韩福利电影在线| 日本久久一区二区三区| 欧美国产日韩在线观看| 国内外精品视频| 在线不卡a资源高清| 一区2区3区在线看| www.爱久久.com| 欧美国产综合色视频| 国内精品自线一区二区三区视频| 欧美性大战久久| 亚洲激情图片一区| 99久久婷婷国产综合精品电影 | 欧美综合在线视频| 亚洲精品五月天| 成人伦理片在线| 国产欧美综合在线| 国产成人丝袜美腿| 久久新电视剧免费观看| 六月丁香婷婷色狠狠久久| 91精品国产91久久久久久一区二区 | 精品写真视频在线观看 | 欧美日韩精品免费观看视频| 亚洲三级免费观看| 丁香激情综合五月| 国产欧美视频一区二区三区| 国内精品伊人久久久久影院对白| 日韩免费观看高清完整版| 日韩1区2区日韩1区2区| 91麻豆精品国产自产在线| 亚洲1区2区3区4区| 欧美乱熟臀69xxxxxx| 午夜久久久久久电影| 91精品综合久久久久久| 奇米影视一区二区三区小说| 91精品国产综合久久久久久| 日韩电影在线观看一区| 欧美一区二区三区公司| 久久激情五月激情| 久久久欧美精品sm网站| 成人午夜免费av| 亚洲欧美偷拍三级| 欧美伊人久久大香线蕉综合69 | 精品国产乱码久久久久久图片 | 色天使久久综合网天天| 一区二区欧美精品| 欧美日韩免费电影| 美女网站色91| 国产欧美日产一区| 色综合久久久久久久| 亚洲一区二区精品久久av| 这里只有精品电影| 国产伦精品一区二区三区免费迷 | 国产精品综合一区二区| 亚洲国产精品二十页| 99国产精品久| 日韩精品一级二级| 久久久久久久久97黄色工厂| 9人人澡人人爽人人精品| 亚洲国产精品久久久久秋霞影院 | 天天射综合影视| 久久―日本道色综合久久| 成人av在线资源网| 亚洲电影你懂得| 久久一二三国产| 欧洲精品在线观看|