Christoph Dingler: einen Button für mehrere Funktionen benutzen!

Hallo nochmal,

wie kann ich einen Button mit mehreren Funktionen belegen: wenn man das erste mal draufdrückt soll die eine Funktion asugefürht werden, beim zweiten mal die andere und danach wieder die erste! muss man den wert dann in ner variablen speichern? hat jemand schon son script fertig??
tschüssii und danke

  1. Und wenn es geht noch die Aufschrift ändern für jede Funktion!

    1. Hi Christoph

      Und wenn es geht noch die Aufschrift ändern für jede Funktion!

      Hilft dir das weiter: http://selfhtml.teamone.de/javascript/objekte/elements.htm#value

      Johannes

      --
      Stop bushism
      ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
      Selfcode bei http://emmanuel.dammerer.at/selfcode.html
  2. Hi Christoph

    wie kann ich einen Button mit mehreren Funktionen belegen: wenn man das erste mal draufdrückt soll die eine Funktion asugefürht werden, beim zweiten mal die andere und danach wieder die erste!
    muss man den wert dann in ner variablen speichern?

    Ja

    hat jemand schon son script fertig??

    Nein. Aber es wird etwas in dieser Richtung werden:

    var funktion = 1;
    function funktionsaufruf() {
        if(var == 1) {
           funktion1();
           var = 2;
        }
        if(var == 2) {
           funktion2();
           var = 1;
        }
    }

    Schöne Grüße

    Johannes

    --
    Stop bushism
    ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
    Selfcode bei http://emmanuel.dammerer.at/selfcode.html
    1. Hallo ihr da draußen,

      var funktion = 1;
      function funktionsaufruf() {
          if(var == 1) {

      ^^^

      funktion1();
             var = 2;

      ^^^

      }
          if(var == 2) {

      ^^^

      funktion2();
             var = 1;

      ^^^

      }
      }

      Die Variable heisst dann aber funktion, nicht var.

      Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),
      Dogfish

      --
      Let's close our eyes and see what happens
      (http://dogfish.net.tc / http://dogfishus.net.tc)
      1. Hi Dogfish

        Die Variable heisst dann aber funktion, nicht var.

        Danke für die Korrektur.

        Das sind die Nachteile von Copy & past ;-). Hatte aus Versehen "var" anstatt "funktion" markiert. *kopfschüttel*

        Schöne Grüße

        Johannes

        --
        Stop bushism
        ss:| zu:) ls:[ fo:) de:] va:) ch:] sh:( n4:& rl:( br:^ js:| ie:{ fl:( mo:|
        Selfcode bei http://emmanuel.dammerer.at/selfcode.html
  3. hallo an alle; danke für eure hilfe; hab  jetzt was geschrieben, was aber noch net ganz funktioniert!
    also:
    <head><script type="text/javascript">
    <!--
    function setActiveStyleSheet(title) {
       var i, a, main;
       for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
         if(a.getAttribute("rel").indexOf("style") != -1
            && a.getAttribute("title")) {
           a.disabled = true;
           if(a.getAttribute("title") == title) a.disabled = false;
         }
       }
    } ****************die funktion funktioniert, hab ich schon getestet****
    var status = 1;
    function wechsel(status) {
      if(status == 1){
      setActiveStyleSheet('druck'); return false; status = 2;}
      if(status == 2){
      setActiveStyleSheet('default'); return false; status = 1;}
      }
    //-->
    </script></head>
    <body>
    <a href="#" onclick="setActiveStyleSheet('default'); return false;">Standard</a>
    <a href="#" onclick="setActiveStyleSheet('druck'); return false;">Druckversion</a>
    ********************das funktioniert, weil es net auf die funktion wechsel zugreift**********
    <form method="POST">
    <p><input type="submit" value="Ansicht" name="#" onclick="wechsel()"></p></form>
    **************************Das funktioniert net!!
    vielleicht kann mir jemand helfen, wäre echt coool

    1. Hallo,

      var status = 1;
      function wechsel(status) {
        if(status == 1){
        setActiveStyleSheet('druck'); return false; status = 2;}
        if(status == 2){
        setActiveStyleSheet('default'); return false; status = 1;}
        }

      irgendwo logisch, dass es nicht geht: zuerst definierst du status als Globale Variable(var status = 1) und dann noch einmal als lokale Varible(function wechsel(status){...}). Lass einfach das status in den Funktionsklammern weg: function wechsel(){...}.

      gruß,
      Severin

      1. Das war auch ursprünglich anders gedacht, es funktioniert aber trotzdem net, habs neu gepostet und http://forum.de.selfhtml.org/?t=44170&m=240780

        1. Hallo,

          Das war auch ursprünglich anders gedacht, es funktioniert aber trotzdem net, habs neu gepostet und http://forum.de.selfhtml.org/?t=44170&m=240780

          Das hättest du dir sparen können.... Es ist wirklich klüger du bleibst bei einen Thread du wirst schon nicht vergessen...

          Naja, was geht denn nicht? Ich rate jezt mal und du meinst, dass das Formular trotzdem abgeschickt wird. Sollte es das sein, vergiss das onclick und verwende <form ... onSubmit=" return wechsel()">
          Sollte es das nicht sein, melde dich noch einmal aber in DIESEM Thread....

          gruß,
          Severin

          1. funktioniert immer noch net!!
            Danke für die Hilfe, ich weiß nicht mehr weiter!

            1. Hallo,

              funktioniert immer noch net!!

              Ok, ganz langsam: Was genau geht nicht? Was soll es tun und was tut es? gibt es irgendwelche Laufzeitfehler oder andere JavaScript Warnungen? Und bitte poste den code noch einmal mit allen deinen änderungen...

              gruß,
              Severin

              1. Also: Ich mcöhte gerne, dass man mit einem Button zwischen Druckversion (druck.css) und Normalversion (blau.css) umswitchen kann. Mit den beiden Hyperlinks am Ende, die die function setActiveStyleSheet(title) aufrufen, und ihr den Parameter übereben, gehtes, was bedeutet, dass das script funktioniert. Aber die Buttonfunktion funktioniert nicht. Wenn man draufklickt, geht er zum Seitenanfang oder macht nen reload, was davon passiert, weiß ich nicht genau.
                Hier noch mal der Code

                Danke für eure Hilfe
                Ich werde nie wieder Doppelpostings schreiben oder Prellen ;-/

                <html>

                <head>
                <link rel="stylesheet" media="screen" href="files/blau.css">
                <link rel="stylesheet" media="print" href="files/druck.css">
                <link rel="alternate stylesheet" type="text/css" href="files/druck.css" title="druck">
                <script type="text/javascript">
                <!--
                function setActiveStyleSheet(title) {
                   var i, a, main;
                   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
                     if(a.getAttribute("rel").indexOf("style") != -1
                        && a.getAttribute("title")) {
                       a.disabled = true;
                       if(a.getAttribute("title") == title) a.disabled = false;
                     }
                   }
                }
                var status = 1;
                function wechsel() {
                  if(status == 1){
                  setActiveStyleSheet('druck'); return false; status = 2;}
                  if(status == 2){
                  setActiveStyleSheet('default'); return false; status = 1;}
                  }
                //-->
                </script>
                </head>

                <body>
                <form method="POST">
                  <p><input type="submit" value="Ansicht" name="#" onclick="wechsel()"></p>
                </form>
                <a href="#" onclick="setActiveStyleSheet('default'); return false;">change style to default</a>
                <a href="#" onclick="setActiveStyleSheet('druck'); return false;">change style to paul</a>
                </body>
                </html>

                1. Kann es sein, dass die Funktion setActiveStyleSheet(*) aus der Funktion wechsel() nicht richtig ausgeführt werden kann? Hab ich nen blöden Tippfehler??

                  1. Habs jetzt mit switch() gemacht, jetzt gehts:

                    falls euch der Code hilft:

                    function wechsel() {
                     switch(status) {
                       case 1:
                      setActiveStyleSheet('druck'); status = 2; alert("Druckansicht"); break;
                       case 2:
                       setActiveStyleSheet('default'); status = 1; alert("Normalansicht"); break;
                      }
                    }

                    Danke für eure Hilfe!!!!
                    Christoph

                    1. hab jetzt alles:

                      function wechsel() {
                       switch(status) {
                         case 1:
                        setActiveStyleSheet('druck'); status = 2; alert("Druckansicht"); document.getElementsByName("ansicht")[0].value = "Normalansicht";
                        document.getElementsByName("ansicht")[0].firstChild.nodeValue = "Normalansicht"; break;
                         case 2:
                         setActiveStyleSheet('default'); status = 1; alert("Normalansicht");document.getElementsByName("ansicht")[0].value = "Druckansicht";
                        document.getElementsByName("ansicht")[0].firstChild.nodeValue = "Druckansicht"; break;
                        }
                      }

                      so, jetzt ändert sich auch die aufschrift.
                      Danke für eure Hilfe

                      Wenn ihr das script nochmal ganz haben wollt, könnt Ihr mir ja ne Mail schreiben, bevor ich das ganze Forum hier weiter zumülle.
                      Danke an alle

                      Christoph

                2. Hallo,

                  Also irgendwie denke ich du hast mein posting nicht gelesen: [pref:t=44166&m=241231]
                  Dass das mit der switch geht ligt IMHO an den Verwendeten alerts, obwhol ich da nicht 100% sicher bin...

                  also lösche das onclick im submit button weg, und setzte in <form> Tag ein onSubmit="return wechsel()"

                  gruß,
                  Severin

                  1. das posting das Du angegeben hast, hatte ich geschrieben??!!
                    habs mit switch() hinbekommen, aber die Aufschrift von meinem Button kann ich noch net verändern, das kommt noch

                    Trotzdem danke

    2. Hallo,

      könnt Ihr euch das nochmal anschauen, vielleicht findet Ihr den Fehler!

      Danke
      Christoph

  4. Hallo, bins nochmal,
    hatte ein paar Tippfehler, aber ein Problem hab ich noch: Mit welchem Befehl kann ich verhindern, dass er die ganze funktion wechsel() ausführt, denn momentan wechselt er das css und gibt es richtig an, aber wenn er die Variable status auf 2 ändert, beginnt er gleich die zweite Bedingung, und ändert das wieder. Müsste man das ganze dann als switch(status) machen, oder wie bricht man das fortfahren im if(){} ab, mit break nich, oder?
    Hier nochmal der ganze Code, könnt ihr auch mal probieren:

    Danke im Voraus

    <html>
    <head>
    <link rel="stylesheet" media="screen" href="files/blau.css">
    <link rel="stylesheet" media="print" href="files/druck.css">
    <link rel="alternate stylesheet" type="text/css" href="files/druck.css" title="druck">
    <script type="text/javascript">
    <!--
    function setActiveStyleSheet(title) {
       var i, a, main;
       for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
         if(a.getAttribute("rel").indexOf("style") != -1
            && a.getAttribute("title")) {
           a.disabled = true;
           if(a.getAttribute("title") == title) a.disabled = false;
         }
       }
    }
    var status = 1;
    function wechsel() {
      if(status == 1){
      setActiveStyleSheet('druck'); status = 2; alert(1); };

    if(status == 2){
      setActiveStyleSheet('default'); status = 1; alert(2); };
      }
    //-->
    </script>

    </head>

    <body>
    <form method="POST">
      <p><input type="button" value="Ansicht" name="#"  onclick="wechsel()"></p>
    </form>
    <a href="#" onclick="setActiveStyleSheet('default'); return false;">Normalansicht</a>
    <a href="#" onclick="setActiveStyleSheet('druck'); return false;">Druckansicht</a>
    </body>
    </html>

    1. Tippfehler, hinter den if(){}steht kein ;

      1. Habs momentan einfach mit stop() geblockt, was aber nen Fehler hervorruft, wenns ne schönere Variante gibt...
        Danke