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

📄 ig_webtree.js

📁 研究怎样通过手写代码来完成自动生成代码
💻 JS
📖 第 1 页 / 共 5 页
字号:
		var action = node[1];
		switch(action) {
			case 0 :
				this.update("SelectedNode", id);
				break;
			case 1 :
				igtree_updateNodeToggle(this, id, true);
				break;
			case 2 :
				igtree_updateNodeToggle(this, id, false);
				break;
			case 3 :
				igtree_updateNodeCheck(this, id, true)
				break;
			case 4 :
				igtree_updateNodeCheck(this, id, false)
				break;
		}
	}
}

function igtree_loadcomplete() {
	for(i=0; i<igtree_indexState.length; i++) {
		var tree = igtree_indexState[i];
		var eNode = ig_csom.getElementById(tree.scrollnodeId);
		if(eNode) {
			igtree_scrollToView(tree.Element,eNode)
		}
	}
}
// private - initializes the client-side events for the Tree object
function igtree_events(events)
{
	this.AfterBeginNodeEdit=events[0];
	this.AfterEndNodeEdit=events[1];
	this.AfterNodeSelectionChange=events[2];
	this.AfterNodeUpdate=events[3];
	this.BeforeBeginNodeEdit=events[4];
	this.BeforeEndNodeEdit=events[5];
	this.BeforeNodeSelectionChange=events[6];
	this.BeforeNodeUpdate=events[7];
	this.NodeChecked=events[8];
	this.EditKeyDown=events[9];
	this.EditKeyUp=events[10];
	this.InitializeTree=events[11];
	this.KeyDown=events[12];
	this.KeyUp=events[13];
	this.NodeClick=events[14];
	this.NodeCollapse=events[15];
	this.NodeExpand=events[16];
	this.DemandLoad=events[17];
	this.Drag=events[18];
	this.DragEnd=events[19];
	this.DragEnter=events[20];
	this.DragLeave=events[21];
	this.DragOver=events[22];
	this.DragStart=events[23];
	this.Drop=events[24];
}

// private
function igtree_getNodeSpan(node)
{
	if(!node)
		return null;
	var span=node.childNodes[node.childNodes.length-1];
	while(span && span.tagName!="SPAN")
		span=span.previousSibling;
	return span;
}

function igtree_getSrcNodeElement(evnt,tn)
{
	var src=igtree_getSrcElement(evnt);
	var parent = src.parentNode;
	while(parent != null) {
		if(parent.id != null && parent.id.length > 0)
			return src;
		if(src.tagName=="IMG" && src.getAttribute("imgType")=="exp")
			return src;
		if(src.tagName=="IMG" && src.getAttribute("igimg")=="1")
			return src;
		if(src.tagName=="INPUT" || src.tagName=="SPAN")
			return src;
			
		src = parent;
		parent = parent.parentNode;
	}
	return null;
	
}
function igtree_getNodeElement(src)
{
	var parent = src;
	while(parent) {
		if(ig_csom.notEmpty(parent.id))
			return parent;
		parent = parent.parentNode;
	}
	return null;
}

function igtree_pageUnload(){
	if(ig_csom.IsIE55Plus) {
		ig_delete(igtree_treeState);
		ig_delete(igtree_indexState);
	}
}

if(typeof(ig_csom)!="undefined" && ig_csom.IsIE)
	ig_csom.addEventListener(window, "unload", igtree_pageUnload, true);

// private - toggles the expansion state of a node.
function igtree_toggle(tn, nodeId)
{
	var node=igtree_getNodeById(nodeId);
	var s = igtree_getElementById("M_"+nodeId);
	var ts=igtree_treeState[tn];
	
	if(!node.getEnabled()) 
		return;
		
	if(!s && ts.LoadOnDemand>=1) {
		node.setExpanded(true);
		return;
	}
	if(s.style.display == "none") {
		node.setExpanded(true);
	}
	else
		node.setExpanded(false);
		
	return;		
}

// private - Implements the Collapse() method for the Node object
function igtree_collapseNode(node) {
	var tn=node.getTreeId();
	var ts=igtree_treeState[tn];
	var s;
	s = igtree_getElementById("M_"+node.element.id);
	if(!s)
		return;
	var oNode = ts.getSelectedNode();
	if(oNode != null && ts.Events.AfterNodeSelectionChange[1] == 0) {
		var parent = oNode.getParent();
		while(parent != null) {
			if(parent.element.id == node.element.id)
				node.setSelected(true);
			parent = parent.getParent();
		}
	}
	var button = igtree_getNodeExpandCollapseImage(ts, node);
	if(!button)
		return;
	if(igtree_fireEvent(tn,ts.Events.NodeCollapse,"(\""+tn+"\",\""+node.element.id+"\")"))
		return;
	if(ts.NeedPostBack)	{
		if(ts._FreezeServerEvents==null)
		{
			ts.NeedPostBack=false;
			__doPostBack(ts.UniqueId,node.element.id+":Collapse");
			return;
		}
	}
	if(ts.ClassicTree){
		s.style.display = "none";
		
		// [KV 10/28/2004, 12:44 PM] replace changed to use simple expression
		// UWN945 - The plus minus images of ClassicTree do not change on expanding and collapsing
		button.src = button.src.replace("minus.gif", "plus.gif");
		// button.src = button.src.replace("ig_treefminus.gif", "ig_treefplus.gif");
		// button.src = button.src.replace("ig_treemminus.gif", "ig_treemplus.gif");
		// button.src = button.src.replace("ig_treelminus.gif", "ig_treelplus.gif");
		// button.src = button.src.replace("ig_treeominus.gif", "ig_treeoplus.gif");
	}
	else{
		image = ts.ExpandImage;
		if(image == "")
			image = "ig_treeplus.gif";
		button.src = image;
		s.style.display = "none";
	}
	igtree_updateNodeToggle(ts, s.id, false);
}

// Private - returns the expand image for a node
function igtree_getNodeExpandCollapseImage(tree, node) {
	var index = 1;
	var button
	if(tree.ClassicTree) {
		index = 0;
		button=node.element.childNodes[0].childNodes[index];
	}
	else
		button=node.element.childNodes[index];
	if(button.tagName!="IMG" || button.getAttribute("imgType")!="exp"){
		while (button!=null && (button.tagName!="IMG" || button.getAttribute("imgType")!="exp")) {
			button=button.nextSibling;
		}
		if(button==null)
			return;
	}
	return button;
}

// Private - Implements the Expand() method for the Node object
function igtree_expandNode(node) {
	var tn=node.getTreeId();
	var ts=igtree_treeState[tn];
	
	var button = igtree_getNodeExpandCollapseImage(ts, node);
	if(!button)
		return;
	var s;
	s = igtree_getElementById("M_"+node.element.id);
	if(!s) {
		var ts=igtree_treeState[tn];
		if(ts.LoadOnDemand>=1) {
				igtree_updateNodeToggle(ts, "M_"+node.element.id, true);
				if(igtree_fireEvent(tn,ts.Events.DemandLoad,"(\""+tn+"\",\""+node.element.id+"\")"))
					return;
				if(ts.NeedPostBack)	{
					__doPostBack(ts.UniqueId,node.element.id+":DemandLoad");
					return;
				}
		}
		return;
	}

	if(igtree_fireEvent(tn,ts.Events.NodeExpand,"(\""+tn+"\",\""+node.element.id+"\")"))
		return;

	if(ts.NeedPostBack){
		ts.NeedPostBack=false;
		__doPostBack(ts.UniqueId,node.element.id+":Expand");
		return;
	}

	if(ts.SingleBranchExpand) {
		ts._FreezeServerEvents = true;
		var prev=node.getPrevSibling();
		while(prev != null) {
			prev.setExpanded(false);
			prev=prev.getPrevSibling();
		}
		var next=node.getNextSibling();
		while(next != null) {
			next.setExpanded(false);
			next=next.getNextSibling();
		}
		ts._FreezeServerEvents = null;
	}
	
	if(ts.ClassicTree){
		s.style.display = "";
		// [KV 10/28/2004, 12:44 PM] replace changed to use simple expression
		// UWN945 - The plus minus images of ClassicTree do not change on expanding and collapsing
		button.src = button.src.replace("plus.gif", "minus.gif");
		// button.src = button.src.replace("ig_treefplus.gif", "ig_treefminus.gif");
		// button.src = button.src.replace("ig_treemplus.gif", "ig_treemminus.gif");
		// button.src = button.src.replace("ig_treelplus.gif", "ig_treelminus.gif");
		// button.src = button.src.replace("ig_treeoplus.gif", "ig_treeominus.gif");
	}
	else{
		image = ts.CollapseImage;
		if(image == "")
			image = "ig_treeminus.gif";
		button.src = image;
		s.style.display = "";
	}
	igtree_updateNodeToggle(ts, s.id, true);
}

// private - Handles checkbox clicking within the tree.
function igtree_checkboxClick(tn, nodeId, src)
{
	var ts=igtree_treeState[tn];
	var node=igtree_getNodeById(nodeId);
	if(src.checked) {
		if(igtree_fireEvent(tn,ts.Events.NodeChecked,"(\""+tn+"\",\""+nodeId+"\", true)")) {
			src.checked = false;
			return;
		}
		if(ts.NeedPostBack)	{
			__doPostBack(ts.UniqueId,nodeId+":Checked");
			return;
		}
		igtree_updateNodeCheck(ts, nodeId, true);
	}
	else {
		if(igtree_fireEvent(tn,ts.Events.NodeChecked,"(\""+tn+"\",\""+nodeId+"\", false)")) {
			src.checked = true;
			return;
		}
		if(ts.NeedPostBack)	{
			__doPostBack(ts.UniqueId,nodeId+":Unchecked");
			return;
		}
		igtree_updateNodeCheck(ts, nodeId, false);
	}
}

// private - Retrieves the resolved hover class for an item in the tree.
function igtree_getResolvedHoverClass(tn,node)
{
	if(node.getAttribute("HoverClass"))
		return node.getAttribute("HoverClass");
	return igtree_treeState[tn].HoverClass;
}

// private - Handles the mouse over event for the tree.
function igtree_mouseover(evnt,tn)
{
	if(!igtree_treeState[tn])
		return;
	var src=igtree_getSrcNodeElement(evnt,tn);
	if(!src)
		return;
	if(src.tagName!="SPAN")
		return;
	var eNode = igtree_getNodeElement(src);

	var tree=igtree_treeState[tn];
	if(igtree_IE && tree.Element.clientWidth>0 && eNode.offsetWidth>tree.Element.clientWidth) 
		if(ig_csom.isEmpty(eNode.title)) {
			src.title=src.innerText;
			eNode.igtitle = true;
		}

	var node=igtree_getNodeById(eNode.id);
	if(!node.getEnabled())
		return;

	if(eNode == igtree_selectedNode(tn))
		return;

	var className=igtree_getResolvedHoverClass(tn,eNode);
	if(className=="" || src.className == className)
	    return;
	    
	var igtxt = src.getAttribute("igtxt");	
	if(igtxt!=null && igtxt.length>0) {
		src.HovClass = src.className;
		src.hoverSet = true;
		src.className = className;
	}
	
}

// private - Handles the mouse out event for the tree
function igtree_mouseout(evnt,tn)
{
	if(!igtree_treeState[tn])
		return;
	var src=igtree_getSrcNodeElement(evnt,tn);
	if(!src)
		return;
	if(src.tagName!="SPAN")
		return;
	var eNode = igtree_getNodeElement(src);

	if(eNode.igtitle) {
		src.title="";
		eNode.igtitle = null;
	}
	
	var node=igtree_getNodeById(eNode.id);
	if(!node.getEnabled())
		return;

	var igtxt = src.getAttribute("igtxt");	
	if(igtxt==null || igtxt.length==0) {
		return;
	}
	if(eNode != igtree_selectedNode(tn)){
		if(src.style != null) {
			if(src.hoverSet) {
				prevClass =	src.HovClass;
				if(prevClass == null)
					prevClass = "";
				src.className = prevClass;
				src.hoverSet = null;
			}
		}
	}
}

// private - Handles the right click event for the tree.
function igtree_contextmenu(evnt,tn)
{
	if(!igtree_treeState[tn])
		return;
	var ts=igtree_treeState[tn];
	var src=igtree_getSrcNodeElement(evnt,tn);
	if(!src)
		return;
	if (src.tagName!="SPAN") return;

	var eNode = igtree_getNodeElement(src);
	ts.event = evnt;

	if(igtree_fireEvent(tn,ts.Events.NodeClick,"(\""+tn+"\",\""+eNode.id+"\", 2)")) {
		ig_cancelEvent(evnt);
		return false;
	}
	ts.event = null;
}

// private - Retieves the resolved HiliteClass for a node in the tree.
function igtree_getResolvedHiliteClass(tn,src)
{
	if(!src)
		return "";
	if(src.getAttribute("HiliteClass"))
		return src.getAttribute("HiliteClass");
	if(igtree_treeState[tn].HiliteClass!="")
		return igtree_treeState[tn].HiliteClass;
	return tn+"HiliteClass";
}

function igtree_navigate(tree, node) {
	if(!node.getEnabled())
		return;
	if(!node.WebTree.Enabled)
		return;

	if(node.getTargetUrl()==null)
	{
		if(igtree_fireEvent(tree.Id,tree.Events.NodeClick,"(\""+tree.Id+"\",\""+node.Id+"\",1)"))
			return;
		if(tree.NeedPostBack)
		{
			igtree_postNodeClick(tree.Id,node.Id);
			return;
		}
	}
	if(ig_csom.notEmpty(node.getTargetUrl()) && !tree.RenderAnchors) //&& 
		ig_csom.navigateUrl(node.getTargetUrl(),node.getTargetFrame());
}

// private - Handles the click event for nodes
function igtree_nodeclick(evnt,tn)
{
	if(!igtree_treeState[tn])
		return;
	var tree=igtree_treeState[tn];
	var src=igtree_getSrcNodeElement(evnt,tn);
	if(!src)
		return;
	

	if(!tree.Enabled)
		return;
	var eNode = igtree_getNodeElement(src);
	var igtxt = src.getAttribute("igtxt")!=null && src.getAttribute("igtxt").length>0;	
	var igimg = src.getAttribute("igimg")!=null && src.getAttribute("igimg").length>0;	
	var igchk = src.getAttribute("igchk")!=null && src.getAttribute("igchk").length>0;	

⌨️ 快捷键说明

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