Aufklappmenu Problem...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Aufklappmenu Problem...

    Hallo, hab da ein sehr schönes Aufklapmenu gefunden, nur das Problem ist, wenn ich "News" anklicke macht er es auf (was auch Ok ist), nur wenn ich dann "Nested Exemple" macht er es auch auf und schließt nicht "news"...

    jetzt die eigendliche Frage, wie bekomm ich hin, wenn ich "news" oder "Nested Example" anklicke das er das davor wieder schließt???

    Quellcode

    1. <style>
    2. <!--
    3. #foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
    4. //list-style-image:url(fold.gif)}
    5. #foldinglist{list-style-image:url(list.gif)}
    6. //-->
    7. </style>
    8. <script language="JavaScript1.2">
    9. <!--
    10. var head="display:''"
    11. img1=new Image()
    12. img1.src="fold.gif"
    13. img2=new Image()
    14. img2.src="open.gif"
    15. var ns6=document.getElementById&&!document.all
    16. var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
    17. function checkcontained(e){
    18. var iscontained=0
    19. cur=ns6? e.target : event.srcElement
    20. i=0
    21. if (cur.id=="foldheader")
    22. iscontained=1
    23. else
    24. while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
    25. if (cur.id=="foldheader"||cur.id=="foldinglist"){
    26. iscontained=(cur.id=="foldheader")? 1 : 0
    27. break
    28. }
    29. cur=ns6? cur.parentNode : cur.parentElement
    30. }
    31. if (iscontained){
    32. var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
    33. if (foldercontent.style.display=="none"){
    34. foldercontent.style.display=""
    35. cur.style.listStyleImage="url(open.gif)"
    36. }
    37. else{
    38. foldercontent.style.display="none"
    39. cur.style.listStyleImage="url(fold.gif)"
    40. }
    41. }
    42. }
    43. if (ie4||ns6)
    44. document.onclick=checkcontained
    45. //-->
    46. </script>
    47. <ul>
    48. <li id="foldheader">News</li>
    49. <ul id="foldinglist" style="display:none" style=&{head};>
    50. <li><a href="http://www.cnn.com">CNN</a></li>
    51. <li><a href="http://www.abcnews.com">ABC News</a></li>
    52. <li><a href="http://www.news.bbc.co.uk">BBC News</a></li>
    53. </ul>
    54. <li id="foldheader">Nested Example</li>
    55. <ul id="foldinglist" style="display:none" style=&{head};>
    56. <li><a href="http://www.dynamicdrive.com">outer 1</a></li>
    57. <li><a href="http://www.dynamicdrive.com">outer 2</a></li>
    58. <li><a href="http://www.dynamicdrive.com">outer 4</a></li>
    59. </ul>
    60. </ul>
    Alles anzeigen


    oder bessergesagt, ich such dafür ein Aufklappmenu, was sich dann öffnet, wenn man den Nick anklickt...

    Quellcode

    1. // Show user
    2. users+="<TR valign='bottom'><TD align='right'>"+muted_link+info_link+pm_link+"</TD><TD align='left'><A href='#' onclick='parent.openProfileWindow("+user[i].ID+"); parent.focusInput(); return false;' style='color:"+user[i].Color+"; font-weight:bold;'>"+user[i].Name+"</A></TD></TR>";
    3. }


    greets
  • Ich hoffe es reicht dir eine Idee bzw. ein Lösungsweg, den ich immer verwende:

    Erstelle gleich zu Anfang eine leere Variable. Wird nun zum Aufklappen auf solch eine Box geklickt wird nicht nur diese aufgeklappt, sondern auch in die zuvor erstellte Variable gespeichert, was so eben geöffnet wurde.
    Außerdem wird vorher noch eine Funktion ausgeführt, mit der du die Boxen wieder schließen kannst. Sofern also in oldBox (s.u.) ein Wert, eine ID vorhanden ist, wird eine Funktion ausgeführt, die die alte Box wieder schließt.
    Beachte dabei aber, dass du die Variable für die alte Box erst überschreibst, wenn du diese auch wirklich geschlossen hast. Sonst öffnet sich gar nichts, logisch.

    Näheres im folgenden ungefähren Beispiel:

    Quellcode

    1. var oldBox = '';
    2. function openBox(id) {
    3. if(oldBox != '') // alte Box schließen
    4. // neue Box öffnen
    5. oldBox = id;
    6. }


    Frag, wenn noch etwas undeutlich sein sollte.
  • Wenn es dir irgendwie weiterhilft, habe ich hier auch noch mal einen Link von einem geplanten ACP, dass diese Funktion in der Navigation ebenfalls besitzt. Vielleicht kannst du dir da rausfischen, was du brauchst, ist leider nur nicht sonderlich groß Kommentiert.

    http://unschlau.unnett.de/

    Quellcode

    1. // [...]
    2. var hideOtherId = '';
    3. var showActiveId = '';
    4. // [...]
    5. function hideBox(id) {
    6. box = document.getElementById(id);
    7. if(box.style.display == 'block') box.style.display = 'none';
    8. else box.style.display = 'block';
    9. }
    10. function hideOtherBox(id,parent) {
    11. if((OtherBox = document.getElementById(hideOtherId)) && hideOtherId != '' && hideOtherId != id)
    12. OtherBox.style.display = 'none';
    13. if(box = document.getElementById(id)) {
    14. box.style.display = 'block';
    15. hideOtherId = id;
    16. }else hideOtherId = '';
    17. showActive(parent);
    18. }
    19. function showActive(id) {
    20. if(showActiveId != '' && showActiveId != id)
    21. document.getElementById(showActiveId).className = '';
    22. document.getElementById(id).className = 'active';
    23. showActiveId = id;
    24. }
    25. // [...]
    Alles anzeigen