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

📄 loop.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
字号:
if(!dojo._hasResource["dojox.dtl.tag.loop"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.dtl.tag.loop"] = true;dojo.provide("dojox.dtl.tag.loop");dojo.require("dojox.dtl._base");dojo.require("dojox.string.tokenize");(function(){	var dd = dojox.dtl;	var ddtl = dd.tag.loop;	ddtl.CycleNode = dojo.extend(function(cyclevars, name, TextNode, shared){		this.cyclevars = cyclevars;		this.name = name;		this.TextNode = TextNode;		this.shared = shared || {counter: -1, map: {}};	},	{		render: function(context, buffer){			if(context.forloop && !context.forloop.counter0){				this.shared.counter = -1;			}			++this.shared.counter;			var value = this.cyclevars[this.shared.counter % this.cyclevars.length];			var map = this.shared.map;			if(!map[value]){				map[value] = new dd._Filter(value);			}			value = map[value].resolve(context, buffer);			if(this.name){				context[this.name] = value;			}			if(!this.contents){				this.contents = new this.TextNode("");			}			this.contents.set(value);			return this.contents.render(context, buffer);		},		unrender: function(context, buffer){			return this.contents.unrender(context, buffer);		},		clone: function(){			return new this.constructor(this.cyclevars, this.name, this.TextNode, this.shared);		}	});	ddtl.IfChangedNode = dojo.extend(function(nodes, vars, shared){		this.nodes = nodes;		this._vars = vars;		this.shared = shared || {last: null};		this.vars = dojo.map(vars, function(item){			return new dojox.dtl._Filter(item);		});	}, {		render: function(context, buffer){			if(context.forloop && context.forloop.first){				this.shared.last = null;			}			var change;			if(this.vars.length){				change = dojo.toJson(dojo.map(this.vars, function(item){					return item.resolve(context);				}));			}else{				change = this.nodes.dummyRender(context, buffer);			}			if(change != this.shared.last){				var firstloop = (this.shared.last === null);				this.shared.last = change;				context.push();				context.ifchanged = {firstloop: firstloop}				buffer = this.nodes.render(context, buffer);				context.pop();			}			return buffer;		},		unrender: function(context, buffer){			this.nodes.unrender(context, buffer);		},		clone: function(buffer){			return new this.constructor(this.nodes.clone(buffer), this._vars, this.shared);		}	});	ddtl.RegroupNode = dojo.extend(function(expression, key, alias){		this._expression = expression;		this.expression = new dd._Filter(expression);		this.key = key;		this.alias = alias;	},	{		_push: function(container, grouper, stack){			if(stack.length){				container.push({ grouper: grouper, list: stack })			}		},		render: function(context, buffer){			context[this.alias] = [];			var list = this.expression.resolve(context);			if(list){				var last = null;				var stack = [];				for(var i = 0; i < list.length; i++){					var id = list[i][this.key];					if(last !== id){						this._push(context[this.alias], last, stack);						last = id;						stack = [list[i]];					}else{						stack.push(list[i]);					}				}				this._push(context[this.alias], last, stack);			}			return buffer;		},		unrender: function(context, buffer){			return buffer;		},		clone: function(context, buffer){			return this;		}	});	dojo.mixin(ddtl, {		cycle: function(parser, text){			// summary: Cycle among the given strings each time this tag is encountered			var args = text.split(" ");			if(args.length < 2){				throw new Error("'cycle' tag requires at least two arguments");			}			if(args[1].indexOf(",") != -1){				var vars = args[1].split(",");				args = [args[0]];				for(var i = 0; i < vars.length; i++){					args.push('"' + vars[i] + '"');				}			}			if(args.length == 2){				var name = args[args.length - 1];				if(!parser._namedCycleNodes){					throw new Error("No named cycles in template: '" + name + "' is not defined");				}				if(!parser._namedCycleNodes[name]){					throw new Error("Named cycle '" + name + "' does not exist");				}		        return parser._namedCycleNodes[name];			}			if(args.length > 4 && args[args.length - 2] == "as"){				var name = args[args.length - 1];				var node = new ddtl.CycleNode(args.slice(1, args.length - 2), name, parser.getTextNodeConstructor());				if(!parser._namedCycleNodes){					parser._namedCycleNodes = {};				}				parser._namedCycleNodes[name] = node;			}else{				node = new ddtl.CycleNode(args.slice(1), null, parser.getTextNodeConstructor());			}			return node;		},		ifchanged: function(parser, text){			var parts = dojox.dtl.text.pySplit(text);			var nodes = parser.parse(["endifchanged"]);			parser.next();			return new ddtl.IfChangedNode(nodes, parts.slice(1));		},		regroup: function(parser, text){			var tokens = dojox.string.tokenize(dojo.trim(text), /(\s+)/g, function(spaces){				return spaces;			});			if(tokens.length < 11 || tokens[tokens.length - 3] != "as" || tokens[tokens.length - 7] != "by"){				throw new Error("Expected the format: regroup list by key as newList");			}			var expression = tokens.slice(2, -8).join("");			var key = tokens[tokens.length - 5];			var alias = tokens[tokens.length - 1];			return new ddtl.RegroupNode(expression, key, alias);		}	});})();}

⌨️ 快捷键说明

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