document.all
Chris
- javascript
Hallo,
ich habe 2 aufklappbare Menüs auf meiner Seite.
Das eine öffne oder schließe ich so:
function openCategory(catid)
{
if (document.all["cat"+catid].style.display=='none')
{
document.all["cat"+catid].style.display='';
document.all["but"+catid].src = '../images/bt/arrow_faq_open.gif';
}
else
{
document.all["cat"+catid].style.display='none';
document.all["but"+catid].src = '../images/bt/arrow_faq_default.gif';
}
}
Das andere Menü schliße und öffne ich aber auch über document.all, daher funktioniert daher nur ein Menü richtig. Wie kann ich denn jetzt das unterscheiden? Also jedes DIV hat ja seine eindetige ID+Namen.
Vielen Dank
Grüße Chris
hi,
if (document.all["cat"+catid].style.display=='none')
Das andere Menü schliße und öffne ich aber auch über document.all, daher funktioniert daher nur ein Menü richtig.
vollkommen irrelevant, document.all ist nur eine art container für alle darunter liegenden objekte.
Wie kann ich denn jetzt das unterscheiden? Also jedes DIV hat ja seine eindetige ID+Namen.
du greifst doch jetzt bereits auf explizit bestimmte elemente zu, in dem du hinter document.all als "index" die ID(?) "cat"+catid angibst.
hier musst du also den code verändern/dynamisch machen, so dass auch elemente mit anderem bezeichner angesprochen werden können.
btw: das document.all MS-spezifisch ist, und somit in gecko-browsern nicht funktionieren dürfte, ist dir bekannt?
weitaus sauberer ist der weg über's DOM, mit getElementBy...
gruß,
wahsaga
Hi,
Das andere Menü schliße und öffne ich aber auch über document.all, daher funktioniert daher nur ein Menü richtig.
Nein, keines funktioniert richtig. document.all gibt es in JavaScript gar nicht, sondern nur in JScript von Microsoft (sowie bei allen Browserherstellern, die unbedingt meinen, auf "ich kenne nur den IE - und da funzt es"-Gelegenheitsprogrammierer Rücksicht nehmen zu müssen. >;->
Wie kann ich denn jetzt das unterscheiden?
Tippfehler: Wie kann ich das vermeiden?
document.getElementById()
Gruß, Cybaer
Hi,
ok habs mit getElementById hinbekommen, jedoch nun noch eine Frage: Ich möchte wenn man einen Untermenüpunkt anklickt und man auf die nächste Seite kommt, dass das Untermenü aufgeklappt bleibt. wie löse ich das? Mit <body onload> z.B. und dann eine entsprechende Funktion die mir das öffnet was übergeben wurde. Also die ID hätte ich dynamisch immer da! Hier mein bisheriger Code:
function SwitchMenu(obj)
{
var img2 = obj + 'img';
if(document.getElementById)
{
var el = document.getElementById(obj);
var elimg = document.getElementById(img2);
var ar = document.getElementById("cont").getElementsByTagName("DIV");
if(el.style.display == "none")
{
for(var i=0; i<ar.length; i++)
{
ar[i].style.display = "none";
}
el.style.display = "block";
elimg.src = '../images/bt/arrow_open.gif';
}
else
{
el.style.display = "none";
elimg.src = '../images/bt/arrow_default.gif';
}
}
}
Chris
Hi,
Mit <body onload> z.B. und dann eine entsprechende Funktion die mir das öffnet was übergeben wurde. Also die ID hätte ich dynamisch immer da!
? Weißt Du nicht, wie man der "vom Fleck weg" das Menü ausgeklappt darstellt, oder weißt Du nicht, wie der "Ausklapper" wissen soll, was er auszuklappen hat?
Gruß, Cybaer
Hi Cybaer
ich weiß nicht, wie man vom Fleck weg das Menü aufgeklappt ist...
Grüße
Christoph
hi,
ich weiß nicht, wie man vom Fleck weg das Menü aufgeklappt ist...
in dem du nach dem fertig laden der seite (onLoad) die funktion für das ausklappen aufrufst.
gruß,
wahsaga
Hi wahsage,
ja stimmt...
Grüße Chris
Hi,
ja stimmt...
IMHO besser direkt nachdem der betreffende (HTML- & JS-)Code vorhanden ist. Sonst macht es nach dem Laden nochmal unschön "plopp"! ;-)
Wird das Menü in eine (Blind-)Tabelle gepackt, wirkt es IMHO noch besser, da vor der Anzeige fertig gerendert wird.
Gruß, Cybaer