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

📄 event.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	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.event");dojo.require("dojo.lang.array");dojo.require("dojo.lang.extras");dojo.require("dojo.lang.func");dojo.event = new function(){	this.canTimeout = dojo.lang.isFunction(dj_global["setTimeout"])||dojo.lang.isAlien(dj_global["setTimeout"]);	// FIXME: where should we put this method (not here!)?	function interpolateArgs(args, searchForNames){		var dl = dojo.lang;		var ao = {			srcObj: dj_global,			srcFunc: null,			adviceObj: dj_global,			adviceFunc: null,			aroundObj: null,			aroundFunc: null,			adviceType: (args.length>2) ? args[0] : "after",			precedence: "last",			once: false,			delay: null,			rate: 0,			adviceMsg: false		};		switch(args.length){			case 0: return;			case 1: return;			case 2:				ao.srcFunc = args[0];				ao.adviceFunc = args[1];				break;			case 3:				if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isString(args[2]))){					ao.adviceType = "after";					ao.srcObj = args[0];					ao.srcFunc = args[1];					ao.adviceFunc = args[2];				}else if((dl.isString(args[1]))&&(dl.isString(args[2]))){					ao.srcFunc = args[1];					ao.adviceFunc = args[2];				}else if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isFunction(args[2]))){					ao.adviceType = "after";					ao.srcObj = args[0];					ao.srcFunc = args[1];					var tmpName  = dl.nameAnonFunc(args[2], ao.adviceObj, searchForNames);					ao.adviceFunc = tmpName;				}else if((dl.isFunction(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))){					ao.adviceType = "after";					ao.srcObj = dj_global;					var tmpName  = dl.nameAnonFunc(args[0], ao.srcObj, searchForNames);					ao.srcFunc = tmpName;					ao.adviceObj = args[1];					ao.adviceFunc = args[2];				}				break;			case 4:				if((dl.isObject(args[0]))&&(dl.isObject(args[2]))){					// we can assume that we've got an old-style "connect" from					// the sigslot school of event attachment. We therefore					// assume after-advice.					ao.adviceType = "after";					ao.srcObj = args[0];					ao.srcFunc = args[1];					ao.adviceObj = args[2];					ao.adviceFunc = args[3];				}else if((dl.isString(args[0]))&&(dl.isString(args[1]))&&(dl.isObject(args[2]))){					ao.adviceType = args[0];					ao.srcObj = dj_global;					ao.srcFunc = args[1];					ao.adviceObj = args[2];					ao.adviceFunc = args[3];				}else if((dl.isString(args[0]))&&(dl.isFunction(args[1]))&&(dl.isObject(args[2]))){					ao.adviceType = args[0];					ao.srcObj = dj_global;					var tmpName  = dl.nameAnonFunc(args[1], dj_global, searchForNames);					ao.srcFunc = tmpName;					ao.adviceObj = args[2];					ao.adviceFunc = args[3];				}else if((dl.isString(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))&&(dl.isFunction(args[3]))){					ao.srcObj = args[1];					ao.srcFunc = args[2];					var tmpName  = dl.nameAnonFunc(args[3], dj_global, searchForNames);					ao.adviceObj = dj_global;					ao.adviceFunc = tmpName;				}else if(dl.isObject(args[1])){					ao.srcObj = args[1];					ao.srcFunc = args[2];					ao.adviceObj = dj_global;					ao.adviceFunc = args[3];				}else if(dl.isObject(args[2])){					ao.srcObj = dj_global;					ao.srcFunc = args[1];					ao.adviceObj = args[2];					ao.adviceFunc = args[3];				}else{					ao.srcObj = ao.adviceObj = ao.aroundObj = dj_global;					ao.srcFunc = args[1];					ao.adviceFunc = args[2];					ao.aroundFunc = args[3];				}				break;			case 6:				ao.srcObj = args[1];				ao.srcFunc = args[2];				ao.adviceObj = args[3]				ao.adviceFunc = args[4];				ao.aroundFunc = args[5];				ao.aroundObj = dj_global;				break;			default:				ao.srcObj = args[1];				ao.srcFunc = args[2];				ao.adviceObj = args[3]				ao.adviceFunc = args[4];				ao.aroundObj = args[5];				ao.aroundFunc = args[6];				ao.once = args[7];				ao.delay = args[8];				ao.rate = args[9];				ao.adviceMsg = args[10];				break;		}		if(dl.isFunction(ao.aroundFunc)){			var tmpName  = dl.nameAnonFunc(ao.aroundFunc, ao.aroundObj, searchForNames);			ao.aroundFunc = tmpName;		}		if(dl.isFunction(ao.srcFunc)){			ao.srcFunc = dl.getNameInObj(ao.srcObj, ao.srcFunc);		}		if(dl.isFunction(ao.adviceFunc)){			ao.adviceFunc = dl.getNameInObj(ao.adviceObj, ao.adviceFunc);		}		if((ao.aroundObj)&&(dl.isFunction(ao.aroundFunc))){			ao.aroundFunc = dl.getNameInObj(ao.aroundObj, ao.aroundFunc);		}		if(!ao.srcObj){			dojo.raise("bad srcObj for srcFunc: "+ao.srcFunc);		}		if(!ao.adviceObj){			dojo.raise("bad adviceObj for adviceFunc: "+ao.adviceFunc);		}		return ao;	}	this.connect = function(){		if(arguments.length == 1){			var ao = arguments[0];		}else{			var ao = interpolateArgs(arguments, true);		}		if(dojo.lang.isArray(ao.srcObj) && ao.srcObj!=""){			var tmpAO = {};			for(var x in ao){				tmpAO[x] = ao[x];			}			var mjps = [];			dojo.lang.forEach(ao.srcObj, function(src){				if((dojo.render.html.capable)&&(dojo.lang.isString(src))){					src = dojo.byId(src);					// dojo.debug(src);				}				tmpAO.srcObj = src;				// dojo.debug(tmpAO.srcObj, tmpAO.srcFunc);				// dojo.debug(tmpAO.adviceObj, tmpAO.adviceFunc);				mjps.push(dojo.event.connect.call(dojo.event, tmpAO));			});			return mjps;		}		// FIXME: just doing a "getForMethod()" seems to be enough to put this into infinite recursion!!		var mjp = dojo.event.MethodJoinPoint.getForMethod(ao.srcObj, ao.srcFunc);		if(ao.adviceFunc){			var mjp2 = dojo.event.MethodJoinPoint.getForMethod(ao.adviceObj, ao.adviceFunc);		}		mjp.kwAddAdvice(ao);		return mjp;	// advanced users might want to fsck w/ the join point					// manually	}	this.log = function(a1, a2){		var kwArgs;		if((arguments.length == 1)&&(typeof a1 == "object")){			kwArgs = a1;		}else{			kwArgs = {				srcObj: a1,				srcFunc: a2			};		}		kwArgs.adviceFunc = function(){			var argsStr = [];			for(var x=0; x<arguments.length; x++){				argsStr.push(arguments[x]);			}			dojo.debug("("+kwArgs.srcObj+")."+kwArgs.srcFunc, ":", argsStr.join(", "));		}		this.kwConnect(kwArgs);	}	this.connectBefore = function(){		var args = ["before"];		for(var i = 0; i < arguments.length; i++) { args.push(arguments[i]); }		return this.connect.apply(this, args);	}	this.connectAround = function(){		var args = ["around"];		for(var i = 0; i < arguments.length; i++) { args.push(arguments[i]); }		return this.connect.apply(this, args);	}	this.connectOnce = function(){		var ao = interpolateArgs(arguments, true);		ao.once = true;		return this.connect(ao);	}	this._kwConnectImpl = function(kwArgs, disconnect){		var fn = (disconnect) ? "disconnect" : "connect";		if(typeof kwArgs["srcFunc"] == "function"){			kwArgs.srcObj = kwArgs["srcObj"]||dj_global;			var tmpName  = dojo.lang.nameAnonFunc(kwArgs.srcFunc, kwArgs.srcObj, true);			kwArgs.srcFunc = tmpName;		}		if(typeof kwArgs["adviceFunc"] == "function"){			kwArgs.adviceObj = kwArgs["adviceObj"]||dj_global;			var tmpName  = dojo.lang.nameAnonFunc(kwArgs.adviceFunc, kwArgs.adviceObj, true);			kwArgs.adviceFunc = tmpName;		}		return dojo.event[fn](	(kwArgs["type"]||kwArgs["adviceType"]||"after"),									kwArgs["srcObj"]||dj_global,									kwArgs["srcFunc"],									kwArgs["adviceObj"]||kwArgs["targetObj"]||dj_global,									kwArgs["adviceFunc"]||kwArgs["targetFunc"],									kwArgs["aroundObj"],									kwArgs["aroundFunc"],									kwArgs["once"],									kwArgs["delay"],									kwArgs["rate"],									kwArgs["adviceMsg"]||false );	}	this.kwConnect = function(kwArgs){		return this._kwConnectImpl(kwArgs, false);	}	this.disconnect = function(){		var ao = interpolateArgs(arguments, true);		if(!ao.adviceFunc){ return; } // nothing to disconnect		var mjp = dojo.event.MethodJoinPoint.getForMethod(ao.srcObj, ao.srcFunc);		return mjp.removeAdvice(ao.adviceObj, ao.adviceFunc, ao.adviceType, ao.once);	}	this.kwDisconnect = function(kwArgs){		return this._kwConnectImpl(kwArgs, true);	}}// exactly one of these is created whenever a method with a joint point is run,// if there is at least one 'around' advice.dojo.event.MethodInvocation = function(join_point, obj, args) {	this.jp_ = join_point;	this.object = obj;	this.args = [];	for(var x=0; x<args.length; x++){		this.args[x] = args[x];

⌨️ 快捷键说明

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