This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nms-nmsweb/WebRoot/js/menu.js
2018-09-27 16:21:05 +08:00

220 lines
6.3 KiB
JavaScript

var highlightcolor = "#c1ebff";
//此处clickcolor只能用win系统颜色代码才能成功,如果用#xxxxxx的代码就不行
var clickcolor = "#D9D8D8";
var colorT = "#000000";
var nochangeIndex = null;
function submenu(menuId) {
//alert("menuIdt" + menuId);
var parentNodes = new Array();
var i = 0;
var img = document.getElementById("image" + menuId);
//alert("menuIdt" + menuId);
//当前所点节点元素
var currentDiv = document.getElementById(menuId);
//判断当前菜单是否打开
if (isOpen(currentDiv)) {
//alert("current menu is open");
//关闭当前菜单
closeMenu(currentDiv, img);
} else {
//alert("current menu is closed");
//得到所有的table的元素
var trNum = document.getElementsByTagName("span");
//alert("trNum.lengtht"+trNum.length);
//将所有菜单都关闭
closeAll();
//alert("all menu are closed");
//得到当前节点的父节点集合
getParentNode(currentDiv, "SPAN", parentNodes, i);
//alert("parentNodest" + parentNodes.length);
//如果有父节点 打开父菜单
if (parentNodes.length > 0) {
for (var j = 0; j < parentNodes.length; j++) {
var parentDiv = document.getElementById(parentNodes[j]);
//if (parentDiv.id != "root") {
var parentImg = document.getElementById("image" + parentDiv.id);
openMenu(parentDiv, parentImg);
//}
}
}
//打开点击的菜单
openMenu(currentDiv, img);
}
}
//根据子节点找到对应的父节点trId
function getParentNode(currentNode, condition, parentNodes, i) {
var parentNodeTemp = currentNode.parentNode;
//alert("parentNodeTemp.nodeNamet" + parentNodeTemp.nodeName);
if (parentNodeTemp.nodeName != "UL") {
if (parentNodeTemp.nodeName == condition) {
//alert(i + "===parentNodeTemp.idt" + parentNodeTemp.id);
parentNodes[i] = parentNodeTemp.id;
//alert("parentNodeIdt" + parentNodeTemp.id);
i += 1;
}
getParentNode(parentNodeTemp, condition, parentNodes, i);
}else if(parentNodeTemp.nodeName == "div"){
return;
}
}
//打开菜单
function openMenu(currentDiv, img) {
//alert(currentDiv.style.display);
//alert(currentDiv.id);
//document.getElementById("402").style.display="";
currentDiv.style.display = "block";
//alert(currentDiv.style.display);
if (img != null) {
img.src = "images/tree/open_image.gif";
}
}
//关闭菜单
function closeMenu(currentDiv, img) {
currentDiv.style.display = "none";
if (img != null) {
img.src = "images/tree/close_image.gif";
}
}
//关闭所有菜单
function closeAll() {
var trNum = document.getElementsByTagName("span");
//alert("trNumt" + trNum.length);
for (var i = 1; i < trNum.length; i++) {
var div = document.getElementsByTagName("span")[i];
//alert(i + "=t" + div.id);
if ("" != div.id && null != div.id && "show"!=div.id) {
var imgId = "image" + div.id;
var imgTemp = document.getElementById(imgId);
closeMenu(div, imgTemp);
}
}
}
//判断当前菜单是否打开
function isOpen(currentDiv) {
//alert(currentDiv+"::::"+currentDiv.style.display);
if (currentDiv.style.display == "" || currentDiv.style.display == "block") {
return true;
}
return false;
}
function mouseoverEvent() {
source = event.srcElement;
if (source.tagName == "li" || source.tagName == "div") {
return;
}
while (source.tagName != "li") {
source = source.parentElement;
}
source = source.parentElement;
cs = source.children;
//alert(cs.length);
if (cs[0].style.backgroundColor != highlightcolor && source.id != "nc" && cs[0].style.backgroundColor != clickcolor) {
for (i = 0; i < cs.length; i++) {
if (cs[i].style != null) {
cs[i].style.backgroundColor = highlightcolor;
}
}
}
}
function mouseoutEvent() {
//alert("changeback");
source = event.srcElement;
if (source.tagName == "li" || source.tagName == "div") {
return;
}
while (source.tagName != "li") {
source = source.parentElement;
}
source = source.parentElement;
if (nochangeIndex != null) {
var trElement = document.getElementById("tr" + nochangeIndex);
if (trElement == source) {
return;
}
}
if (event.fromElement.contains(event.toElement) || source.contains(event.toElement) || source.id == "nc") {
return;
}
if (event.toElement != source && cs[0].style.backgroundColor != clickcolor) {
//source.style.backgroundColor=originalcolor
}
for (i = 0; i < cs.length; i++) {
//alert("1");
if (cs[i].style != null && cs[i].style.backgroundColor != clickcolor) {
cs[i].style.backgroundColor = "#FFFFFF";
}
}
}
function clickLinkEvent() {
//alert("click");
//revertBgColor();
//设置当前点中行的宽度为最大值
//var tableMax=document.getElementById("root");
//var widthMax=tableMax.width;
//alert("widthMaxt"+widthMax);
source = event.srcElement;
//alert("tagName1t" + source.tagName);
if ( source == "" ||source.tagName == "span" || source.tagName == "ul" || source.tagName == "IMG") {
return;
}
while (source.tagName != "li") {//alert("source.tagName!=li:"+source.parentElement.tagName);
//alert("source.tagName!=TD");
source = source.parentElement;
//alert("source.tagName="+source.tagName);
}
//TR
source = source.parentElement;
cs = source.children;
//source.style.pixelLeft=document.body.clientLeft;
//alert("cs.lengtht" + cs.length);
//设置点击的行的颜色
//source.width=widthMax;
if (source.id != "nc" && cs[0].style.background != clickcolor) {
// alert("change color begin");
for (i = 0; i < cs.length; i++) {
//alert("dfd");
if(cs[i].style.backgroundColor!=clickcolor)
{
cs[i].style.backgroundColor = clickcolor;
}
}
//alert("change color end");
}
}
//判断td中是否存在table
function tableIsExistInTr(trObj) {
var tds = trObj.children;
for (var i = 0; i < tds.length; i++) {
if (tds[i].tagName == "li") {
var tdcs = tds[i].children;
//alert(tdcs.length);
for (var j = 0; j < tdcs.length; j++) {
if (tdcs[j].tagName == "div") {
//alert(trObj.id);
return true;
}
}
}
}
return false;
}
//将所有的行的背景色设置为#FFFFFF
function revertBgColor() {
var trObjs = document.getElementsByTagName("li");
//alert(trObjs.length);
for (var i = 0; i < trObjs.length; i++) {
var trTemp = trObjs[i];
// alert(trTemp.style.display);
if (trTemp.style.display == "") {
var trcs = trTemp.children;
//alert(trcs.length);
for (var j = 0; j < trcs.length; j++) {
trcs[j].style.backgroundColor = "#FFFFFF";
}
}
}
}