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

📄 ig_webmenu.js

📁 研究怎样通过手写代码来完成自动生成代码
💻 JS
📖 第 1 页 / 共 5 页
字号:
	
	clearCurrentMenu = false;
	clearTimeout(igmenu_clearMenuId);
			
	var currItemId = igmenu_getSubMenu(item).igCurrentItem;
	if(currItemId != null && currItemId.length > 0) {
		var childItem = igmenu_getElementById(currItemId)
		ms.unhoverItem(childItem, true);
		var thisMenu = igmenu_getSubMenu(item);
		if(ig_csom.notEmpty(thisMenu.igCurrentChild)) {
			var eCurrentChild = ig_csom.getElementById(thisMenu.igCurrentChild);
			eCurrentChild.igCurrentChild = null;
		}
	}
	
	var igSeparator = item.getAttribute("igSep");
	if(igSeparator != null && igSeparator.length > 0) {
		clearCurrentMenu = false;
		return;
	}
	ms.hoverItem(item);
	
	var childId = item.getAttribute("igChildId");

	// Check that the child is not already being displayed.
	var currentChildId = igmenu_getSubMenu(item).igCurrentChild;
	if(ig_csom.notEmpty(childId) && childId==currentChildId) {
		ms.clearDescendants(igmenu_getElementById(currentChildId), true);
		var childItemId = igmenu_getElementById(childId).igCurrentItem;
		if(ig_csom.notEmpty(childItemId)) {
			ms.unhoverItem(igmenu_getElementById(childItemId), true);
		}
		// [KV 11/5/2004, 2:14 PM] Only return after making sure 
		// that the child is visible. Fix for UWN866
		if (ig_csom.getElementById(currentChildId).style.visibility == 'visible')
			return;
	}
	if(childId != null) {
		var igDisabled = item.getAttribute("igDisabled");
		var igtop = item.getAttribute("igTop");
		if(igDisabled != null && igDisabled.length > 0) {
			if(igtop!=null && igtop.length > 0) {
				ms.clearMenuTree(null);
			}
			igmenu_getSubMenu(item).igCurrentItem = item.id;
			return;
		}
		if(ms.MenuTarget == 1) {
			if(ms.WebMenuStyle>=2 && ms.TopHoverStarted==false && igtop!=null && igtop.length > 0) {
				return;
			}
		}
if(viaMouse)

		if(ms.MenuTarget == 1 && ms.WebMenuStyle>=1 && igtop!=null && igtop.length > 0) {
			clearTimeout(igmenu_timerId);
			ms.displayHorizontalSubMenu(item, childId);
			igmenu_getSubMenu(item).igCurrentChild = childId;
			igmenu_getSubMenu(item).igCurrentItem = item.id;
		}
		else {
			if(igmenu_displayItem != item) {
				igmenu_displayItem = item;
				igmenu_displayChildId = childId;
				clearTimeout(igmenu_timerId);
				clearTimeout(igmenu_clearMenuId);
				igmenu_timerId = setTimeout('igmenu_displayTimeOut()', ms.ExpandEffects.Delay);
			}
			else { 
				if(ig_csom.notEmpty(igtop) && (item.previousSibling==null && item.nextSibling==null)){
					igmenu_displayChildId = childId;
					clearTimeout(igmenu_timerId);
					clearTimeout(igmenu_clearMenuId);
					igmenu_timerId = setTimeout('igmenu_displayTimeOut()', ms.ExpandEffects.Delay);
				}
			}
		}
	}
	else {
		if(igmenu_getSubMenu(item).igCurrentChild !=null) {
			ms.clearDescendants(igmenu_getSubMenu(item), true);
			clearTimeout(igmenu_timerId);
			igmenu_getSubMenu(item).igCurrentChild=null;
			igmenu_displayItem = null;
			igmenu_getSubMenu(item).igCurrentItem=null;
		}
	}

}

var igmenu_timerId;
var igmenu_displayItem;
var igmenu_displayChildId;
// private - displays submenus after time expiration
function igmenu_displayTimeOut() {
	if(igmenu_displayItem == null)
		return;

	igmenu_getSubMenu(igmenu_displayItem).igCurrentChild = igmenu_displayChildId;
	igmenu_getSubMenu(igmenu_displayItem).igCurrentItem = igmenu_displayItem.id;
	var ms=igmenu_getMenuByItemId(igmenu_displayItem.id);
	var igtop = igmenu_displayItem.getAttribute("igTop");
	if(ms.MenuTarget >= 2 && igtop != null && igtop.length > 0) {
		ms.displayVerticalSubMenu(igmenu_displayItem, igmenu_displayChildId, 4);
	}
	else
		ms.displaySubSubMenu(igmenu_displayItem, igmenu_displayChildId, 2);
		
}

var igmenu_clearMenuId;
// private - implements mouseout event handling
function igmenu_mouseout(submenu, evnt) {
	ig_inMenu = false;	
	var item = igmenu_getTblRow(evnt);
	if(item == null) {
		clearCurrentMenu = true;
		clearTimeout(igmenu_clearMenuId);
		if(ig_menuObject)
			igmenu_clearMenuId = setTimeout('TimerExpired()', ig_menuObject.ExpandEffects.RemovalDelay);
		return;
	}
		
	var igSeparator = item.getAttribute("igSep");
	var ms = igmenu_getMenuByItemId(item.id);
	if((ms == undefined) || (ms.MenuLoaded==false))
		return;

	if(igSeparator != null && igSeparator.length > 0) {
		clearCurrentMenu = true;
		if(ig_csom.IsIE) {
			clearTimeout(igmenu_clearMenuId);
			igmenu_clearMenuId = setTimeout('TimerExpired()', ms.ExpandEffects.RemovalDelay);
		}
		return;
	}

	if(item.getAttribute("igDisabled") == "1")
		return;
	var currItemId = igmenu_getSubMenu(item).igCurrentItem;
	var currentChildId = igmenu_getSubMenu(item).igCurrentChild
	var childId = item.getAttribute("igChildId");
	if(ig_csom.isEmpty(childId) || ig_csom.isEmpty(currentChildId) || childId != currentChildId)  {
	//if(currItemId == null || currItemId.length == 0) { // commented to allow all unhoverings to occur
		ms.unhoverItem(item, true);
	}
	igmenu_displayItem = null; 
	clearCurrentMenu = true;
	clearTimeout(igmenu_clearMenuId);
	igmenu_clearMenuId = setTimeout('TimerExpired()', ms.ExpandEffects.RemovalDelay);
}
// private - overloaded method for getTblRow
function igmenu_getTblRowByItemElement(item)
{
	return igmenu_getTblRowHelp(item);
}

// Gets the table row object for which a TD or other element event fired.
// private - obtains the row element associated with the event
function igmenu_getTblRow(evnt) { 
	var item;
	if(ig_csom.IsNetscape6)  {
		item = evnt.target;
	}
	else
		item = evnt.srcElement;
	
	return igmenu_getTblRowHelp(item);
	/* Moved to helper function 
	while(item.tagName != "TR") {
		if(item.getAttribute != null) {
			var attrib = item.getAttribute("igTop");
			var submenu = item.getAttribute("submenu");
			if(submenu == "1")
				return null;
			if(item.tagName == "TD" && attrib != null && attrib.length > 0)
				return item;
		}
		if(item == null)
			return null;
		if(item.tagName == "TABLE")
			return null;
		item = item.parentNode;
	}
	return item;
	*/
}
// private helper function for getTblRow and getTblRowByItemElement
function igmenu_getTblRowHelp(item)
{
	while(item.tagName != "TR") {
		if(item.getAttribute != null) {
			var attrib = item.getAttribute("igTop");
			var submenu = item.getAttribute("submenu");
			if(submenu == "1")
				return null;
			if(item.tagName == "TD" && attrib != null && attrib.length > 0)
				return item;
		}
		if(item == null)
			return null;
		if(item.tagName == "TABLE")
			return null;
		item = item.parentNode;
	}
	return item;		
}


// private - Gets the table object for which a TD or other element event fired.
function igmenu_getSubMenu(item) {
	submenu = false;
	while(!submenu)  {
		var a = item.getAttribute("submenu");
		if(item.getAttribute("submenu") == '1')
			submenu = true;
		else
			item = item.parentNode;
	}
	return item;
}

// private
function igmenu_getRightPos(e) {
    var x = e.offsetRight;
    var tmpE = e.offsetParent;
    while (tmpE != null) {
        x += tmpE.offsetRight;
        tmpE = tmpE.offsetParent;
    }
    return x;
}
// private
function igmenu_getLeftPos(element) {
    var x = 0;
    var parent = element;
    while (parent != null) {
		if(parent.tagName=="BODY")
			break;
        x += parent.offsetLeft;
        parent = parent.offsetParent;
    }
    return x;
}
// private
function igmenu_getTopPos(element) {
    var y = 0;
    var parent = element;
    while(parent != null) {
		if(parent.tagName=="BODY")
			break;
		y += parent.offsetTop;
        parent = parent.offsetParent;
	}
    return y;
}

var clearCurrentMenu = true;
// private - Clears submenus at timer expiration
function TimerExpired() {
	if(clearCurrentMenu && ig_menuObject != null) {
		ig_menuObject.clearMenuTree(null, true);
		clearTimeout(igmenu_timerId);
		igmenu_hideDropDowns(false);
	}
}

// private - Handles the mouse down event
function igmenu_mousedown(table, evnt) {
	var item=igmenu_getTblRow(evnt);
	if(item!=null) {
		ig_inMenu = true;
		var igDisabled = item.getAttribute("igDisabled");
		if(igDisabled != null && igDisabled.length > 0) {
			return;
		}
	}
	else
		return;
	var ms=igmenu_getMenuByItemId(item.id);
	if(ms == null || ms.MenuLoaded == false)
		return;

	var attrib = item.getAttribute("igTop");
	if(ms.MenuTarget == 1 && ms.WebMenuStyle>=2 && attrib!=null && attrib.length > 0){
		var childId = item.getAttribute("igChildId");
		if(childId!=null && childId.length > 0) {
			var currentChildId = igmenu_getSubMenu(item).igCurrentChild;
			if(childId != null && childId.length > 0 && childId == currentChildId) {
				ms.clearMenuTree(null, true);
				ig_startClick=false;
				ms.TopHoverStarted = false;
				ms.hoverItem(item)
				return;
			}
			var oldClass = item.igClass;
			item.setAttribute("igPrevClass", oldClass);
			clearTimeout(igmenu_timerId);
			ms.TopHoverStarted = true;
			ms.hoverItem(item)
			ms.displayHorizontalSubMenu(item, childId);
			igmenu_getSubMenu(item).igCurrentChild = childId;
			igmenu_getSubMenu(item).igCurrentItem = item.id;
			return;
		}
	}
	ms.TopHoverStarted=false;
	ig_startClick = true;	
	if(evnt.stopPropagation != null) evnt.stopPropagation();
	if(evnt.preventDefault != null) evnt.preventDefault();
	evnt.cancelBubble = true;
	evnt.returnValue = false;
}

var	ig_startClick = false;

// private - Handles the mouse up event
// changed signature to capture extra case, since in JS extra params default to null
//function igmenu_mouseup(table, evnt) {
function igmenu_mouseup(table, evnt, oItemElement) {
	//var item=igmenu_getTblRow(evnt);
	var item=null; 
	if (!oItemElement)
		item=igmenu_getTblRow(evnt);
	else
		item=igmenu_getTblRowByItemElement(oItemElement);
			
	if(item==null){return;}
	
	var ms=igmenu_getMenuByItemId(item.id);
	if(ms==null) {
		return;
	}
	var igDisabled = item.getAttribute("igDisabled");
	var igTop = item.getAttribute("igTop");
	var igChildId = item.getAttribute("igChildId");
	var igUrl=item.getAttribute("igUrl");
	if(igDisabled != null && igDisabled.length > 0) 
		return;
	var igSeparator = item.getAttribute("igSep");
	if(igSeparator != null && igSeparator.length > 0) {
		clearCurrentMenu = false;
		return;
	}
	
	if(igChildId != null && igChildId.length > 0) {
		if(igUrl == null || igUrl.length == 0) {
			ms.fireEvent(ms.Events.ItemClick,"(\""+mn+"\",\""+item.id+"\")");
			if(ms.NeedPostBack && ((ms.WebMenuStyle == 1) || (ms.WebMenuStyle >1 && igTop == null)))	
				__doPostBack(ms.UniqueId,item.id+":MenuClick");
			return;
		}
	}
		
	if(ig_startClick==true){
		var mn=igmenu_getMenuNameByItemId(item.id);
		var checked=item.getAttribute("igChk");
		var checkbox=item.getAttribute("igChkBx");
		ms.clearMenuTree(null, true);
		if(checkbox!=null && checkbox.length>0) {
			var bCheck=(checked != null) && (checked == '0');
			var postCommand="";
			if(ms.fireEvent(ms.Events.ItemCheck,"(\""+mn+"\",\""+item.id+"\","+bCheck+")"))
				return;
			
			var bHorizontal;
			var bTop = item.getAttribute("igTop");
			if(bTop != null && bTop.length > 0)
				bTop = true;
			else
				bTop = false;
				
			if(ms.MenuTarget==1 && bTop)
				bHorizontal = true;
			var checkElement;
			if(bHorizontal)
				checkElement = item.childNodes[0];
			else
				checkElement = item.childNodes[0].childNodes[0];
			if(checked!=null && checked=="1") {
				bCheck=false;
				postCommand=":Uncheck";
				if(checkElement.tagName == "IMG")
					checkElement.src=ms.UncheckedImage;
				else
				if(checkElement.tagName == "SPAN")
					checkElement.innerHTML = "";
				item.setAttribute("igChk", "0");
			}
			else {
				if(checkElement.tagName == "IMG")
					checkElement.src=ms.CheckedImage;
				else
				if(checkElement.tagName == "SPAN")
					checkElement.innerHTML = "a";
				bCheck=true;
				postCommand=":Check";
				item.setAttribute("igChk", "1");
			}
			
			if(ms.NeedPostBack)	{
				__doPostBack(ms.UniqueId,item.id+postCommand);
			}
			ms.clearMenuTree(null, true);
			ms.updateItemCheck(item.id, bCheck);
			ig_startClick=false;
			if(ig_menuPopup != null) {
				ms.hideSubMenu(ig_menuPopup);			
				ig_menuPopup = null;
			}
			return;
		}
		if(ms.fireEvent(ms.Events.ItemClick,"(\""+mn+"\",\""+item.id+"\")"))
			return;
		ms.clearMenuTree(null, true);
		
		// Reset current item tracking
		igmenu_getSubMenu(item).igCurrentChild=null;
		igmenu_displayItem = null;
		igmenu_getSubMenu(item).igCurrentItem=null;

		igmenu_hideDropDowns(false);
		if(ig_menuPopup != null) {
			ms.hideSubMenu(ig_menuPopup);			
			ig_menuPopup = null;
		}
		ig_startClick=false;
		var igFrame=item.getAttribute("igFrame");
		if(igUrl!=null) {
			ig.navigateUrl(igUrl,igFrame);
			return;

⌨️ 快捷键说明

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