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

📄 simpledropdownbuttons.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 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*//* TODO: * - make the dropdowns "smart" so they can't get cutoff on bottom of page, sides of page, etc. * - unify menus with the MenuItem and Menu classes so we can add stuff to all menus at once * - allow buttons to be enabled/disabled at runtime *     - this probably means creating all menus upfront and then triggering a disable action *       for disabled buttons in the constructor loop. we'll need a disable and enable action anyway * - should each button with menu be a widget object of it's own? */dojo.provide("dojo.widget.SimpleDropdownButtons");dojo.provide("dojo.widget.HtmlSimpleDropdownButtons");dojo.deprecated("dojo.widget.SimpleDropdownButtons",  "use dojo.widget.DropDownButton", "0.4");dojo.require("dojo.event.*");dojo.require("dojo.widget.*");dojo.require("dojo.uri.Uri");dojo.require("dojo.dom");dojo.require("dojo.style");dojo.require("dojo.html");dojo.widget.tags.addParseTreeHandler("dojo:simpledropdownbuttons");dojo.widget.HtmlSimpleDropdownButtons = function() {	dojo.widget.HtmlWidget.call(this);	this.widgetType = "SimpleDropdownButtons";	this.templateCssPath = dojo.uri.dojoUri("src/widget/templates/HtmlSimpleDropdownButtons.css");	this.menuTriggerClass = "dojoSimpleDropdownButtons";	this.menuClass = "dojoSimpleDropdownButtonsMenu";	// overwrite buildRendering so we don't clobber our list	this.buildRendering = function(args, frag) {		if(this.templateCssPath) {			dojo.style.insertCssFile(this.templateCssPath, null, true);		}		this.domNode = frag["dojo:"+this.widgetType.toLowerCase()]["nodeRef"];		var menu = this.domNode;		if( !dojo.html.hasClass(menu, this.menuTriggerClass) ) {			dojo.html.addClass(menu, this.menuTriggerClass);		}		var li = dojo.dom.getFirstChildElement(menu);		var menuIDs = [];		var arrowIDs = [];		while(li) {			if(li.getElementsByTagName("ul").length > 0) {				var a = dojo.dom.getFirstChildElement(li);				var arrow = document.createElement("a");				arrow.href = "javascript:;";				arrow.innerHTML = "&nbsp;";				dojo.html.setClass(arrow, "downArrow");				if(!arrow.id) {					arrow.id = dojo.dom.getUniqueId();				}				arrowIDs.push(arrow.id);				var submenu = dojo.dom.getNextSiblingElement(a);				if(!submenu.id) {					submenu.id = dojo.dom.getUniqueId();				}				menuIDs.push(submenu.id);				if( dojo.html.hasClass(a, "disabled") ) {					dojo.html.addClass(arrow, "disabled");					dojo.html.disableSelection(li);					arrow.onfocus = function(){ this.blur(); }				} else {					dojo.html.addClass(submenu, this.menuClass);					document.body.appendChild(submenu);					dojo.event.connect(arrow, "onmousedown", (function() {						var ar = arrow;						return function(e) {							dojo.html.addClass(ar, "pressed");						}					})());					dojo.event.connect(arrow, "onclick", (function() {						var aa = a;						var ar = arrow;						var sm = submenu;						var setWidth = false;						return function(e) {							hideAll(sm, ar);							sm.style.left = (dojo.html.getScrollLeft()								+ e.clientX - e.layerX + aa.offsetLeft) + "px";							sm.style.top = (dojo.html.getScrollTop() + e.clientY								- e.layerY + aa.offsetTop + aa.offsetHeight) + "px";							sm.style.display = sm.style.display == "block" ? "none" : "block";							if(sm.style.display == "none") {								dojo.html.removeClass(ar, "pressed");								e.target.blur()							}							if(!setWidth && sm.style.display == "block"								&& sm.offsetWidth < aa.offsetWidth + ar.offsetWidth) {								sm.style.width = aa.offsetWidth + ar.offsetWidth + "px";								setWidth = true;							}							e.preventDefault();						}					})());				}				dojo.event.connect(a, "onclick", function(e) {					if(e && e.target && e.target.blur) {						e.target.blur();					}				});				if(a.nextSibling) {					li.insertBefore(arrow, a.nextSibling);				} else {					li.appendChild(arrow);				}			}			li = dojo.dom.getNextSiblingElement(li);		}		function hideAll(excludeMenu, excludeArrow) {			// hide menus			for(var i = 0; i < menuIDs.length; i++) {				var m = document.getElementById(menuIDs[i]);				if(!excludeMenu || m != excludeMenu) {					document.getElementById(menuIDs[i]).style.display = "none";				}			}			// restore arrows to non-pressed state			for(var i = 0; i < arrowIDs.length; i++) {				var m = document.getElementById(arrowIDs[i]);				if(!excludeArrow || m != excludeArrow) {					dojo.html.removeClass(m, "pressed");				}			}		}		dojo.event.connect(document.documentElement, "onmousedown", function(e) {			if( dojo.html.hasClass(e.target, "downArrow") ) { return };			for(var i = 0; i < menuIDs.length; i++) {				if( dojo.dom.isDescendantOf(e.target, document.getElementById(menuIDs[i])) ) {					return;				}			}			hideAll();		});	}}dojo.inherits(dojo.widget.HtmlSimpleDropdownButtons, dojo.widget.HtmlWidget);

⌨️ 快捷键说明

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