Meny fel?

JavaScript

1 svar · 183 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Trådstart#1

Får inte min meny att fungera som jag vill.
Problemet är att den tidigare meny klickningen inte döljs när man klickar på en ny huvud meny och att den visar fel underkategori och ibland 2. Någon som vet vad det kan vara för fel?

<html>
<head>
<style type="text/css">
a { text-decoration: none; color: #000000; FONT-WEIGHT: bolder }
a.klickad { text-decoration: none; color: FFFFFF; FONT-WEIGHT: bolder }

td           { font-size: 8pt; color: #000000; font-family: verdana }
a:hover      { text-decoration: none; color: #FFFFFF; FONT-WEIGHT: bolder }

tr#sub1 td table,tr#sub2 td table,tr#sub3 td table{
margin-left : 0px;
}
tr#sub1,tr#sub2,tr#sub3{
display : none;
}
-->
</style>
<script type="text/javascript">
function klicka(theLink){
    for(var i=0; i<document.links.length; i++){
        document.links[i].className="";
    }
    theLink.className="klickad";
}
//--------------------------->

var active=null,_oE=null;
var subMenus=[
	["sub1","cat","Meny 1 sub"],
	["sub2","cat","Meny 2 sub"],
	["sub3","cat","Meny 3 sub"],
];

function getElm(e){
	switch(true){
	case typeof(document.all)=="object":
		return document.all[e];
	case typeof(document.getElementById)=="function":
		return document.getElementById(e);
	default:
		return null;
	}
};

function showHide(s){
	var e=getElm(s);

	if(!e){
		return true;
	}

	if(active&&active!=e.id){
		var oE=getElm(active);
		if(document.all){
			oE.nextSibling.style.display=(window.opera)?"table-row":"block";
		} else {
			oE.nextSibling.nextSibling.style.display="table-row";
		}
		oE.style.display="none";
	}
	else if(!active&&find()){
		var i=subMenus.length;
		while(i-->0){
			if(e==getElm(subMenus[i][0])){
				if(document.all){
					_oE.nextSibling.style.display=(window.opera)?"table-row":"block";
				} else {
					_oE.nextSibling.nextSibling.style.display="table-row";
				}
				continue;
			} else {
				getElm(subMenus[i][0]).style.display="none";
			}
		}
	}

	if(e.style.display==""||e.style.display=="none"){
		if(document.all){
			e.style.display=(window.opera)?"table-row":"block";
			e.nextSibling.style.display="none";
		} else {
			e.style.display="table-row";
			e.nextSibling.nextSibling.style.display="none";
		}
	} else {
		if(document.all){
			e.nextSibling.style.display=(window.opera)?"table-row":"block";
		} else {
			e.nextSibling.nextSibling.style.display="table-row";
		}
		e.style.display="none";
	}

	active=e.id;

	return false;
};

function find(){
	if(subMenus.length<1||location.search.indexOf("cat=")<1||location.search.indexOf("cat=pics")>0){
		return 0;
	}

	var
		o=subMenus,
		i=o.length,
		l=location.search;
	while(i-->0){
		if(l.indexOf(o[i][1])>0){
			if(l.split(o[i][1])[1].indexOf(o[i][2])>0){
				_oE=getElm(o[i][0]);

				if(document.all){
					_oE.style.display=(window.opera)?"table-row":"block";
					_oE.nextSibling.style.display="none";
				} else {
					_oE.style.display="table-row";
					_oE.nextSibling.nextSibling.style.display="none";
				}
				continue;
			}
		}
		getElm(o[i][0]).style.display="none";
	}
	return 1;
};

window.onload=function(){
	find();
};

document.onclick=function(evnt){
    if(window.event){
        if(window.event.srcElement.tagName=="A")
            klicka(window.event.srcElement);
    } else if(evnt.target){
        if(evnt.target.tagName=="A")
            klicka(evnt.target);
    }
}
</script>
<base target="frameMain">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#669999" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0"><br>
<br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
&nbsp; <a href="#" target="_self" onclick="return showHide('sub1');">Meny 1</a>
&nbsp; <a href="#" target="_self" onclick="return showHide('sub2');">Meny 2</a>
&nbsp; <a href="#" target="_self" onclick="return showHide('sub3');">Meny 3</a>
	</td>
  </tr>

<tr id="sub1">
<td width="100%" height="10">

Underkategori 1 och allt annat som ska visas

    </td>
  </tr>

<tr id="sub2">
<td width="100%" height="10">

Underkategori 2 och allt annat som ska visas

   </td>
  </tr>

<tr id="sub3">
<td width="100%" height="10">

Underkategori 3 och allt annat som ska visas

    </td>
  </tr>

</table>
</body>
</html>
Medlem sedan dec. 20025 483 inlägg
#2

Detta menysystem är specialanpassat för medlemmen Asa (tråden) och är ingenting jag rekommenderar någon annan ;)

Om du ända vill använda den föreslår jag att du bygger menyerna exakt som Asa har på sin hemsida.

:)

269 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)