Florian: bei "onClick" "onClick" selbst ändern

geht das?

Beispiel:
<img src="image.jpg" onClick="mach_dies(); aendere_das_OnClick_auf_mach_das()">

Gibt es die Möglichkeit, auf das OnClick mit "this->onClick" oder so zuzugreifen.

Man kann natürlich auch ein <span> mit einer id drumlegen und dann das innerHTML anpassen, aber das ist nicht das, was ich will...

  1. Hallo Florian,

    »» geht das?

    Beispiel:
    <img src="image.jpg" onClick="mach_dies(); aendere_das_OnClick_auf_mach_das()">

    Du meinst so?

      
    function aendere_das_OnClick_auf_mach_das(){  
      var obj = //wie auch immer das entsteht  
      obj.onclick = function() { window.alert("Geändert"); };  
      ...  
    }
    

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
    1. Ja schon in der Art, Problem ist, das jeweilige Objekt mit den Attributen, in dem Fall das img, einzulesen...

      geht es auch mit this->onClickAction="tu_das()"  ?

      (keine Ahnung ob onClickAction existiert)

      1. Hallo Florian,

        »» Ja schon in der Art, Problem ist, das jeweilige Objekt mit den Attributen, in dem Fall das img, einzulesen...

        Ja, das sollte auch gehen:

          
        function aendere_das_OnClick_auf_mach_das(obj){  
        obj.onclick = function() {alert("Geändert");};  
        }  
        function mach_dies(){  
        alert("Bing");  
        }
        

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
        1. Danke, werde es mal anpassen und ausprobieren...

          1. Hallo Florian,

            Danke, werde es mal anpassen und ausprobieren...

            Ob das eine gute Reihenfolge ist? ;-)

            Mit freundlichem Gruß
            Micha

            --
            LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
            1. Hallo,

              Danke, werde es mal anpassen und ausprobieren...
              Ob das eine gute Reihenfolge ist? ;-)

              Warum nicht? Wenn es definitiv nicht zu seinen Bedürfnissen passt, ist es sogar die einzig mögliche.

              Viele Grüße

              --
              Angeblich macht zuviel Sex blöd und gleichgültig. Hab keine Ahnung davon und ist mir auch egal.
              Das beste Freeware-Programm der Welt
              Selfcode: ie:( fl:| br:^ va:| ls:[ fo:) rl:( n4:| ss:| de:[ js:| ch:? sh:( mo:) zu:|
              1. Hallo Richard,

                Ob das eine gute Reihenfolge ist? ;-)

                Warum nicht? Wenn es definitiv nicht zu seinen Bedürfnissen passt, ist es sogar die einzig mögliche.

                Nö, sinnvoller erachte ich da eher sowas: ausprobieren, anpassen und (wieder) ausprobieren...

                Mit freundlichem Gruß
                Micha

                --
                LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
                1. Hallo,

                  Nö, sinnvoller erachte ich da eher sowas: ausprobieren, anpassen und (wieder) ausprobieren...

                  Naja, kommt drauf an. Habe jetzt ehrlichgesagt keine Lust, mich in dieses Bsp. einzuarbeiten.

                  Viele Grüße

                  --
                  Wir hatten alle die Hosen voll, aber bei mir lief´s ganz flüssig.
                  Das beste Freeware-Programm der Welt
                  Selfcode: ie:( fl:| br:^ va:| ls:[ fo:) rl:( n4:| ss:| de:[ js:| ch:? sh:( mo:) zu:|
                  1. okay funktioniert!
                    Danke nochmal!

        2. Hallo,

          ich sollte vll noch nachreichen, dass der von mir angedachte Aufruf dann so aussieht:

          <img src="image.jpg" onClick="mach_dies(); aendere_das_OnClick_auf_mach_das(this)">

          sonst macht dsas gezeigte keinen Sinn. Jedoch hat Struppi (mal wieder) die bessere Idee...

          Mit freundlichem Gruß
          Micha

          --
          LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
  2. Beispiel:
    <img src="image.jpg" onClick="mach_dies(); aendere_das_OnClick_auf_mach_das()">

    Gibt es die Möglichkeit, auf das OnClick mit "this->onClick" oder so zuzugreifen.

    Ja, es heißt onclick

    <img src="image.jpg" onClick="mach_dies(); this.onclick=aendere_das_OnClick_auf_mach_das">

    Ja, ohne Klammern und du musst die Funktion aendere_das_OnClick_auf_mach_das() definiert haben.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
  3. Gibt es die Möglichkeit, auf das OnClick mit "this->onClick" oder so zuzugreifen.

    Genau so etwas hatte ich auch gesucht. Nur klappt es bei mir nicht:

    alert(document.getElementById(divId));
    document.getElementById(divId).onFocus = 'this.style.border = "1px solid #ff0000"';
    alert(document.getElementById(divId).onFocus);

    Der Code wird zwar angezeigt, aber dann nicht ausgeführt. Weiß jemand warum?

    Ich hatte ürbrigen vorher dies:

    document.getElementById(divId).onFocus = function() {this.style.border = "1px solid #ff0000"};

    Hat aber auch nicht funktioniert.

    Horst

    1. Hallo Horst,

      document.getElementById(divId).onFocus = 'this.style.border = "1px solid #ff0000"';
      alert(document.getElementById(divId).onFocus);

      Der Code wird zwar angezeigt, aber dann nicht ausgeführt.

      warum sollte er? Javascript ist im Gegensatz zu HTML case-sensitive! Natürlich kannst du zusätzlich zu onfocus auch noch eine Eigenschaft onFocus definieren, aber dann wundere dich bitte nicht, wenn diese neu definierte Eigenschaft vom Hostsystem (Browser) nicht weiter berücksichtigt wird.

      document.getElementById(divId).onFocus = function() {this.style.border = "1px solid #ff0000"};
      Hat aber auch nicht funktioniert.

      Ja, gleicher Fehler.

      So long,
       Martin

      --
      Heutzutage gilt ein Mann schon dann als Gentleman, wenn er wenigstens die Zigarette aus dem Mund nimmt, bevor er eine Frau küsst.
        (Barbra Streisand, US-Schauspielerin)
      1. document.getElementById(divId).onFocus = 'this.style.border = "1px solid #ff0000"';
        warum sollte er? Javascript ist im Gegensatz zu HTML case-sensitive!

        Aber die Funktion heißt doch onFocus mit großem F, oder? Mit kleinem f bekomme ich beim ersten alert nämlich ein undefined und beim zweiten ein null.

        Welchen Fehler hatte ich genau gemacht?

        Danke wenn du mir nochmals hilfst.

        Horst

        1. Hallo Horst,

          »» »» »» document.getElementById(divId).onFocus = 'this.style.border = "1px solid #ff0000"';

          warum sollte er? Javascript ist im Gegensatz zu HTML case-sensitive!

          Aber die Funktion heißt doch onFocus mit großem F, oder?

          Ja?

          Da ich das auch erst übersehen hatte, muss noch mehr falsch sein. Die Kleinschreibung scheint aber nur bei einer Verknüpfung mit einem Objekt (obj.onfocus = ...)nötig zu sein, oder?

          Mit kleinem f bekomme ich beim ersten alert nämlich ein undefined und beim zweiten ein null.

          Mit freundlichem Gruß
          Micha

          --
          LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
          1. Aber die Funktion heißt doch onFocus mit großem F, oder?

            Ja?

            Da ich das auch erst übersehen hatte, muss noch mehr falsch sein. Die Kleinschreibung scheint aber nur bei einer Verknüpfung mit einem Objekt (obj.onfocus = ...)nötig zu sein, oder?

            Nein. Der onevent Handler, wird immer klein geschrieben. Muss ja auch, da JS, wie Martin schon erwähnte, case sensitive ist und das nichts weiter als eine normale Eigenschaft des Objektes ist.

            Das Problem ist, HTML ist Groß und Kleinschreibung egal (im gegensatz zu XHTML) deshalb schreiben viele onEevent (vermutlich der übersichtlichkeit wegen ;-)

            Struppi.

            --
            Javascript ist toll (Perl auch!)
            1. Hallo Struppi,

              Nein. Der onevent Handler, wird immer klein geschrieben.

              Das Problem ist, HTML ist Groß und Kleinschreibung egal (im gegensatz zu XHTML) deshalb schreiben viele onEevent

              Ich schreibs sonst ach klein, bisher wohl eher der Faulheit-Halber, da ich auch an Konstruktionen wie <span OnClIcK=...> dachte. Egal!

              (vermutlich der übersichtlichkeit wegen ;-)

              *oO*, da habe ich wohl was angerichtet, die Geister, die ich rief... ;-)

              Mit freundlichem Gruß
              Micha

              --
              LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript
              1. Jetzt geht es merkwürdigerweise:

                document.getElementById(elementId).onfocus = function(){this.style.border = "1px solid #ff0000"};

                Es wird bei alert(document.getElementById(elementId).onfocus) zwar null ausgegeben, aber funktionieren tut es dennoch.

                In sofern, danke.

                1. Jetzt geht es merkwürdigerweise:

                  sollte es, ja.

                  document.getElementById(elementId).onfocus = function(){this.style.border = "1px solid #ff0000"};

                  Es wird bei alert(document.getElementById(elementId).onfocus) zwar null ausgegeben, aber funktionieren tut es dennoch.

                  Das wundert mich und ist auch nicht nachvollziehbar, es sollte (und tut es auch) der Funktionsquellcode angezeigt werden.

                  Übrigens geht das was du willst auch mit CSS.

                  Struppi.

                  --
                  Javascript ist toll (Perl auch!)