Boubou: img.onclick?

Hallo zusammen ich habe per Javascript dynmaisch Inputs erstellt.
Will diese auch löschen. Neben den inputs wird immer ein image mit erstellt. Ich will jetzt img.onclick ="funktion()"; machen aber er reagiert nicht? Wie kann ich auf das img ein onclick machen

  1. Hallo Boubou!

    Ich will jetzt img.onclick ="funktion()"; machen

    ^   ^      ^
    Hast Du es so im Quelltext?

    aber er reagiert nicht?

    Wer?

    Wie kann ich auf das img ein onclick machen

    Tipps für Fragende

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --
    _ - jenseits vom delirium - _

       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
    1. Hast Du es so im Quelltext?

      ja im script Teil habe ich es so. img.onclick ="funktion();"

      Wenn ich das sowas habe

      funktion () {
       alert("lala");
      }

      müsste er theoretisch diese funktion aufrufen macht er nicht er ruft nichts auf

      1. Lieber Boubou,

        funktion () {
        alert("lala");
        }

        was soll das? Lies noch einmal nach, wie man Funktionen definiert.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Hallo Boubou!

        funktion () {

        ^

        alert("lala");
        }

        Wenn Du mir in Russisch sagst, ich soll für Dich den Notarzt anrufen, stehen Deine Karten schlecht, weil ich kein Russisch kann. Und jetzt denke an JavaScript, welche Sprache es versteht.

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --
        _ - jenseits vom delirium - _

           Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
        1. @@Patrick Andrieu:

          »» funktion () {
                ^
          »»  alert("lala");
          »» }

          Wenn Du mir in Russisch sagst, ich soll für Dich den Notarzt anrufen, stehen Deine Karten schlecht, weil ich kein Russisch kann. Und jetzt denke an JavaScript, welche Sprache es versteht.

          ?? Warum sollte er eine Funktion nicht mit dem deutschen Wort "funktion" benennen? Mit dem englischen Wort "function" ginge es wohl nicht, da dies in JavaScript ein reserviertes Schlüsselwort ist. Welches übrigens bei der Funktionsdefinition fehlt:

          function funktion()  
          {  
            alert("lala");  
          }
          

          Live long and prosper,
          Gunnar

          --
          Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
          1. Hallo Gunnar!

            ?? Warum sollte er eine Funktion nicht mit dem deutschen Wort "funktion" benennen? Mit dem englischen Wort "function" ginge es wohl nicht, da dies in JavaScript ein reserviertes Schlüsselwort ist. Welches übrigens bei der Funktionsdefinition fehlt:

            Ich befürchte, dass der OP ein Konstrukt wie:

            funktion tuwas() {}

            in seinem Quelltext hat (und anfangs zusätzlich dies als String dem Event-Handler zuweist, siehe meine erste Antwort).

            Dass selbstvergebene Namen auch in Russisch sein können, weiß ich, ich bin nicht erst seit gestern hier ;)

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --
            _ - jenseits vom delirium - _

               Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
            J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
            1. @@Patrick Andrieu:

              Dass selbstvergebene Namen auch in Russisch sein können, weiß ich,

              Bist du *sicher*? ;-)

              function чтоделать()  
              {  
                alert("Не знаю.");  
              }
              

              Live long and prosper,
              Gunnar

              --
              Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
              1. Hallo Gunnar!

                »» Dass selbstvergebene Namen auch in Russisch sein können, weiß ich,
                Bist du *sicher*? ;-)

                function чтоделать()

                {
                  alert("Не знаю.");
                }

                  
                In der Adresszeile:  
                  
                javascript:function чтоделать() {alert('Не знаю.')}; чтоделать();  
                  
                eingegeben, und ich verstehe nicht, was mir die Alertmeldung sagen will (deswegen könnte ich auch den Notartzt nicht rufen).  
                  
                  
                Viele Grüße aus Frankfurt/Main,  
                Patrick
                
                -- 
                \_ - jenseits vom delirium - \_  
                ![](http://www.atomic-eggs.com/fuernA.jpg)  
                   [Diblom](http://www.atomic-eggs.com/pics/diblom.png)   [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                [J'ai 10 ans!](http://www.atomic-eggs.com/wae/wae_10.shtml#a5) | Achtung [Agentur](http://www.atomic-eggs.com/cwi/cwi_5.shtml#a5)! | Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml) | Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                
                1. @@Patrick Andrieu:

                  javascript:function чтоделать() {alert('Не знаю.')}; чтоделать();
                  eingegeben,

                  Funzt ja tatsächlich. Ich hatte vermutet, dass Bezeichner in JavaScript nur aus ASCII-Zeichen bestehen dürften. Da lag ich wohl falsch. Ich hätte vorher nachlesen (vorlesen? ;-)) sollen. ([ECMASCRIPT] §7.6, S. 14f.)

                  und ich verstehe nicht, was mir die Alertmeldung sagen will

                  Ich weiß nicht.

                  Live long and prosper,
                  Gunnar

                  --
                  Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
                  1. Hallo Gunnar!

                    Funzt ja tatsächlich. Ich hatte vermutet, dass Bezeichner in JavaScript nur aus ASCII-Zeichen bestehen dürften.

                    http://www.atomic-eggs.com/z_testdir/html/russischesroulette.html

                    »» und ich verstehe nicht, was mir die Alertmeldung sagen will
                    Ich weiß nicht.

                    Die Meldung heißt »ich weiß nicht«? Oder Du weißt es nicht? Aber ich weiß, was die chinsesiche Meldung heißt, Christian auch ;)

                    Viele Grüße aus Frankfurt/Main,
                    Patrick, Zeichenklauer...

                    --
                    _ - jenseits vom delirium - _

                       Diblom   [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                    J'ai 10 ans! | Achtung Agentur! | Nichts ist unmöglich? Doch! | Heute schon gegökt?
                    1. @@Patrick Andrieu:

                      Die Meldung heißt »ich weiß nicht«? Oder Du weißt es nicht?

                      Das hatte ich bewusst mehrdeutig gelassen. ;-)

                      не – nicht; знаю – 1. Person Singular von знать – wissen

                      Aber ich weiß, was die chinsesiche Meldung heißt, Christian auch ;)

                      Ich weiß, dass Christian es sogar lesen kann. Du auch? ;-)

                      Live long and prosper,
                      Gunnar

                      --
                      Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
                      1. Hi,

                        Aber ich weiß, was die chinsesiche Meldung heißt, Christian auch ;)

                        Ich weiß, dass Christian es sogar lesen kann. Du auch? ;-)

                        Ich kann auch chinesische Zeichen lesen.
                        Nur ihre Bedeutung verstehe ich nicht ...

                        MfG ChrisB

                        --
                        „This is the author's opinion, not necessarily that of Starbucks.“
      3. Mahlzeit Boubou,

        »» Hast Du es so im Quelltext?
        ja im script Teil habe ich es so. img.onclick ="funktion();"

        Damit weist Du der Eigenschaft "onclick" des Objektes "img" einen String als Wert zu. Was soll Deiner Meinung nach dann passieren?

        Wenn ich das sowas habe

        funktion () {
        alert("lala");
        }

        ... dann ist das falsch. Gesetzt den Fall, Du warst nur schluderig und haust uns hier irgendwelchen Code um die Ohren, "der so oder so ähnlich schon funzt", und der eigentliche Code sieht ungefähr so aus,

        function foobar() {  
          alert('lala');  
        }
        

        dann würde eine Konstruktion wie

        img.onclick = 'foobar();';

        trotzdem nicht funktionieren. Wenn Du in Javascript einem Objekt einen Event-Handler hinzufügen möchtest, musst Du der jeweiligen Eigenschaft ein Funktionsobjekt übergeben:

        img.onclick = (function() {  
          alert('lala');  
        });
        

        müsste er theoretisch diese funktion aufrufen macht er nicht er ruft nichts auf

        Müsste er nicht. Jedenfalls nicht, solange Du es nicht korrekt programmierst ... :-)

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Lieber EKKi,

          img.onclick = (function() {

          alert('lala');
          });

            
          die runden Klammern um die "anonyme Funktion" kannst Du auch weglassen:  
            
          ~~~javascript
          img.onclick = function() {  
            alert('lala');  
          };
          

          Das tut's genauso und ist übersichtlicher. Ich dachte bei Deiner geklammerten Schreibweise sofort an eine Closure, nur um zu sehen, dass Du keine benutzt (was hier in diesem Beispiel ja auch nicht sinnvoll ist) - also eine irreführende Notation, wenn auch syntaktisch korrekt.

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Ich dachte bei Deiner geklammerten Schreibweise sofort an eine Closure, nur um zu sehen, dass Du keine benutzt (was hier in diesem Beispiel ja auch nicht sinnvoll ist)

            Mit Closures hat das (direkt) nichts zu tun. Im verlinkten Beispiel ist die Klammerung nötig, weil eine anonyme Funktion notiert wird, die sofort ausgeführt wird. Das ist keine Closure, sondern eine »anonyme Funktion, die sofort ausgeführt wird«.

            Mathias

  2. Hallo zusammen ich habe per Javascript dynmaisch Inputs erstellt.
    Will diese auch löschen. Neben den inputs wird immer ein image mit erstellt. Ich will jetzt img.onclick ="funktion()"; machen aber er reagiert nicht? Wie kann ich auf das img ein onclick machen

    Traditionelles Event-Handling
    Häufiger Fehler: Auszuführenden Code als String zuweisen

    Mathias