Treeview - Nodes mit Hintergrundfarbe beim Klicken versehen
sunshine
- dhtml
Hallo,
ich habe bereits einen Treeview mittels Listenelementen aufgebaut.
Jetzt möchte ich das wenn man auf eines der Kindelemente klickt diese eine Hintergrundfarbe z.B. blau erhalten. Dies habe ich hinbekommen.
Nun möchte ich aber - wenn auf ein anderes Kindelement im Treeview geklickt wird, das bereits mit der Hintergrundfarbe Blau markierte Kindelement wieder eine neutrale Hintergrundfarbe bekommt und das neu angeklickte Kindelement die Hintergrundfarbe blau erhält.
Das hier ist der Aufruf im HTML-Coding, welchen die Hintergrundfarbe blau einfärbt beim anklicken eines Kindelementes.
<li style="padding-top:5px;" >
<img src="../../Images/detail.gif" width="16" height="16" border="0">
<a href="javascript:showProdukte('Test5');" class="tree" onClick="setBackground('pnode');" name="pnode">
Test5</a>
</li>
Und hier die zugehörige Funktion:
function setBackground(name) {
if (name == "hnode") {
document.getElementsByName("hnode")[0].style.backgroundColor="#95A7C7";
}
if (name == "pnode") {
document.getElementsByName("pnode")[0].style.backgroundColor="#95A7C7";
}
}
Kann mir da jemand einen Tipp geben? Vielen Dank!
sunshine
Hallo Sunshine,
function setBackground(name) {
if (name == "hnode") {
document.getElementsByName("hnode")[0].style.backgroundColor="#95A7C7";
}
if (name == "pnode") {
document.getElementsByName("pnode")[0].style.backgroundColor="#95A7C7";
}
}
Die beiden Aufrufe kannst du zuerste einmal zusammen fassen:
function setBackground(name)
{
document.getElementsByName(name)[0].style.backgroundColor = "#95A7C7";
}
Aber wo liegt das Problem? Wenn der bisher markierte Knoten wieder eine neutrale Farbe erhalten soll, musst du bei ihm halt einen anderen Farbwert zuweisen. Und damit du weißt, wem du diesen Farbwert zuweisen sollst, musst du halt zwischenspeichern, wer bisher markiert war:
bisherMarkiert = "";
function setBackground(name)
{
if (bisherMarkiert != "")
document.getElementsByName(bisherMarkiert)[0].style.backgroundColor = "#DDDDDD";
document.getElementsByName(name)[0].style.backgroundColor = "#95A7C7";
bisherMarkiert = name;
}
Oder übersehe ich hier irgend etwas?
Viel Erfolg,
Robert