• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Menü Problem!

Status
Für weitere Antworten geschlossen.

seric

Neues Mitglied
Hallo liebes Forum,

ich habe da ein kleines Problem.
Wo kann ich im Script festlegen das, dass Untermenü immer angezeigt wird.
Und nicht erst wenn man draufklickt.


Danke im voraus!



Hier das Script das ich Nutze:


<script type="text/javascript">

var activeMenuItem = new Array();

function isUlInArray(inputObj,ulObj){
while(inputObj && inputObj.id!='listMenu'){
if(inputObj==ulObj)return true;
inputObj = inputObj.parentNode;
}
return false;
}

function showHideSub(e,inputObj)
{


if(!inputObj)inputObj=this;
var parentObj = inputObj.parentNode;
var ul = parentObj.getElementsByTagName('UL')[0];
if(activeMenuItem.length>0){
for(var no=0;no<activeMenuItem.length;no++){
if(!isUlInArray(ul,activeMenuItem[0]) && !isUlInArray(activeMenuItem[0],ul)){
activeMenuItem[no].style.display='none';
activeMenuItem.splice(no,1);
no--;
}
}
}
if(ul.offsetHeight == 0){
ul.style.display='block';
activeMenuItem.push(ul);
}else{
ul.style.display='none';
}
}

function showHidePath(inputObj)
{
var startTag = inputObj;
showHideSub(false,inputObj);
inputObj = inputObj.parentNode;
while(inputObj){
inputObj = inputObj.parentNode;
if(inputObj.tagName=='LI')showHideSub(false,inputObj.getElementsByTagName('A')[0]);
if(inputObj.id=='listMenu')inputObj=false;
}
}

function initMenu()
{
var obj = document.getElementById('listMenu');
var linkCounter=0;
var aTags = obj.getElementsByTagName('A');
var activeMenuItem = false;
var activeMenuLink = false;
var thisLocationArray = location.href.split(/\//);
var fileNameThis = thisLocationArray[thisLocationArray.length-1];
if(fileNameThis.indexOf('?')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('?'));
if(fileNameThis.indexOf('#')>0)fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('#'));

for(var no=0;no<aTags.length;no++){
var parent = aTags[no].parentNode;
var subs = parent.getElementsByTagName('UL');
if(subs.length>0){
aTags[no].onclick = showHideSub;
linkCounter++;
aTags[no].id = 'aLink' + linkCounter;
}

if(aTags[no].href.indexOf(fileNameThis)>=0 && aTags[no].href.charAt(aTags[no].href.length-1)!='#'){
if(aTags[no].parentNode.parentNode){
var parentObj = aTags[no].parentNode.parentNode.parentNode;
var a = parentObj.getElementsByTagName('A')[0];
if(a.id && !activeMenuLink){

activeMenuLink = aTags[no];
activeMenuItem = a.id;
}
}
}
}

if(activeMenuLink){
activeMenuLink.className='activeMenuLink';
}
if(activeMenuItem){
if(document.getElementById(activeMenuItem))showHidePath(document.getElementById(activeMenuItem));
}
}
window.onload = initMenu;
</script>
 
Wenn das Untermenü immer offen sein soll, wozu brauchst du dann noch das JavaScript? Schmeiß es doch einfach raus.

Ausserdem wäre es eh nicht ratsam, ein Menü mit JavaScript zu erstellen, denn dann wäre es ohne JavaScript nicht mehr bedienbar. Verwende besser CSS.
 
Danke für die schnelle Antwort.

Das ist natürlich ein gutes Argument:)
Manchmal ist die Lösung einfacher als man denkt.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben