[JavaScript] Menuepunkt nach Anclicken kennzeichnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Menuepunkt nach Anclicken kennzeichnen

    Hallo,
    bin Anfänger und hab dieses Probelm.

    Ich habe einem Menue mit einem Text daneben

    [Bild 1] Text1
    [Bild 2] Text2

    Bei Click auf Text1 soll dort für Bild1 ein neues Bild 1a geladenwerden das solange sichtbar bleibt bis z.B. auf Text 2 geclickt wird. Dann das ganze Spiel mit Bild2 => Bild 2a laden und Bild1a soll wieder verschinden .

    Wie geht das???

    Gehts auch mit dem Text ( z. B. fett nach Click ) ...

    Hoffentlich hab ich mich verständlich ausgedrückt ...

    Bitte um Hilfe

    alfi
    (:alfi

  • #2
    Re: [JavaScript] Menuepunkt nach Anclicken kennzeichnen

    Original geschrieben von alfi
    Hoffentlich hab ich mich verständlich ausgedrückt ...
    nö....
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      doch
      @haxe: erwill den menüpunkt "aktiviert" zeigen, auf dem sich der user gerade befindet

      @alfi
      per javascript:
      a) entweder per frameset mit einem "container"
      b) (ohne frameset) per cookie

      imho besser:
      - per php
      Kissolino.com

      Kommentar


      • #4
        hab das ganze schnell mal mit dreamweaver gemacht:

        das ist der von dreamweaver erstellte code für den Bildaustausch/wiederherstellen:
        PHP-Code:
        <script language="JavaScript" type="text/JavaScript">
        <!--
        function 
        MM_preloadImages() { //v3.0
          
        var d=document; if(d.images){ if(!d.MM_pd.MM_p=new Array();
            var 
        i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0i<a.lengthi++)
            if (
        a[i].indexOf("#")!=0){ d.MM_p[j]=new Imaged.MM_p[j++].src=a[i];}}
        }

        function 
        MM_swapImgRestore() { //v3.0
          
        var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
        }

        function 
        MM_findObj(nd) { //v4.01
          
        var p,i,x;  if(!dd=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
            
        d=parent.frames[n.substring(p+1)].documentn=n.substring(0,p);}
          if(!(
        x=d[n])&&d.allx=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
          for(
        i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
          if(!
        && d.getElementByIdx=d.getElementById(n); return x;
        }

        function 
        MM_swapImage() { //v3.0
          
        var i,j=0,x,a=MM_swapImage.argumentsdocument.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
           if ((
        x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrcx.oSrc=x.srcx.src=a[i+2];}
        }
        //-->
        </script
        das fügst do oben bei <body> ein, damit die bilder vorgeladen werden:

        PHP-Code:
        <body onLoad="MM_preloadImages('../../hlw/picture/tools/edit.gif')"
        das bastelst du aus deinem link(wo das # steht gehört dein eigentlicher link hin)
        PHP-Code:
        <a href="#" onMouseOver="MM_swapImage('Image1','','../../hlw/picture/tools/edit.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="../../hlw/picture/tools/backup.gif" name="Image1" width="16" height="17" id="Image1">asfasfasf</a

        kein PHP Code enthalten, den PHP-vB COde hab ich nur genommen weil es das schö bunt ist
        Schattenbaum | SelfHTML | SelfPHP | DrWeb | polygon.studio || Google | Teoma | Forum Suche

        Kommentar


        • #5
          Danke the.gatekeeper fuer deine Mühen - aber dadurch bleibt der Link
          nicht aktiviert.

          Wie funzt das mit frameset oder mit cookies.

          Da gehts vielleicht lang, aber ich weiss nicht wie - bitte noch ein zwei Tipps dann versuich ich selbst weiter zu laufen.

          Ght's vielleicht auch mit visibility - visible und hidden ???

          Danke im voraus !

          alfi
          (:alfi

          Kommentar


          • #6
            mit nem cookie:
            - bau den js-code in function(en)
            - im cookie setzt du einen wert, am besten den bildnamen
            - beim laden der seite fragst du das cookie ab und wechselst die src des jeweiligen bildes
            Code:
            var x = document.cookie;
            document.images[WertAusDemCookie].src="aktivesBild.gif";
            - bei einem klick auf einen menupunkt übergibst du (onclick) den namen des (menu)bildes und speicherst ihn im cookie
            Code:
            var document.cookie = name;
            mit frames:
            - in der index-seite (da wo das frameset definiert wird) baust du ein javascript ein
            Code:
            <script type="text/javascript">
            <!--
             var merker = "";
            //-->
            </script>
            - in die menu-seite legst du ein script wie das
            Code:
            <script type="text/javascript">
            <!--
            function klick(name)
            {
              parent.merker = name;
            }
            
            function markiere()
            {
              markme = parent.merker;
              // hier musst du alle anderen bilder wieder in den urzustand setzen (hausaufgabe)
              document.images[markme].src ="aktivesBild.gif";
            }
            //-->
            </script>
            - auf jeden menupunkt kommt nun ein ... onclick="klick('nameDesBildes') ...

            das mal als grober anhaltspunkt für eine recherche bei selfHTML => javascript.
            der haken beider wege: sie funktionieren nur, wenn javascript aktiv ist, deshalb
            der tipp mit php. aber ne schöne übung, um js zu lernen
            Kissolino.com

            Kommentar


            • #7
              Dank an alle Helfer, besonders an Wurzel,

              habe immer nur in JS gedacht => php war der entscheidende Tipp.

              Habs so gemacht:

              - mit dem Link wurde sowieso eine Variable .xyz.php?a="var_b" übergeben

              - übergebe diese Var an die Menuefunktion beim Laden der neuen Site

              - dann eine einfache if-Abfrage beim jedem Menuepunkt

              if($a="var_b")
              {
              => Bild 1a zeigen (Link ist markiert)
              }
              else
              {
              => Bild 1 zeigen ( nicht markiert)
              }

              So ist immer nur der aktivierte Link mit dem Bild xa markiert alle anderen mit dem Bild x.

              Noch etwas rumweben ...

              Funzt bei nicht so umfangreichen Sites auch beim weiterklicken!

              Seid nicht so streng mit mir, kanns nicht besser !

              Dank nochmals

              alfi
              (:alfi

              Kommentar


              • #8
                warum denn nicht gleich so

                tipp am rande: schau dir mal im manual an, wie man mit arrays arbeitet. dann kannst du dein problem in einer schleife lösen und musst nicht (wie im moment) für jeden menüpunkt eine bedingung formulieren.
                Kissolino.com

                Kommentar

                Lädt...
                X