OnClick Event verändern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • OnClick Event verändern

    Hallo Forum,

    ich habe einen Link (<a href='blabla.jpg' target='_blank'...), bei dem mittels onclick='fensteroeffnen("blabla.jpg"); return false;' ein Fenster mit einem Bild geöffnet wird, statt es einfach in einem neuen Browserfenster zu öffnen.

    Es gibt allerdings eine JavaScript Bildtausch Funktion, die das Bild, damit natürlich auch den Link austauscht. Mein Problem ist, dass ich jetzt auch den Code im onclick tauschen muss. Leider kann ich nirgendwo finden ob und wenn ja wie das geht.

    Kann mir einer auf die Sprünge helfen?

    Danke und guten Rusch!

  • #2
    z.B. so: document.getElementById("hi").setAttribute("onclick", "alert('hi');")

    Comment


    • #3
      selfhtml

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Comment


      • #4
        Geht nicht

        Danke an Kropff aber das Bildtauschen ist nicht das Thema. Das Problem ist dass auf dem Link, der auf dem Bild liegt, das onclick handle verändert werden soll.

        Danke auch an jmc, aber leider funktioniert das irgendwie nicht. Ich habe zum Testen sogar Deinen Code einfach nur kopiert.

        Das Script sieht so aus:

        function bildtausch(dateiname, bildnummer, bildtyp, zoom_breite, zoom_hoehe)
        {

        document.getElementById('artikel_bild').src = "pfad/"+dateiname+"_"+bildnummer+"_gr.jpg";
        document.getElementById('artikel_zoom_link').href = "pfad/"+dateiname+"_"+bildnummer+"_pop.jpg";
        document.getElementById('artikel_zoom_link').setAttribute("onclick", "alert('hi');");

        alert(document.getElementById('artikel_zoom_link').onclick);

        return false;

        }

        Das "alert" habe ich nur zum Testen eingefügt. Das funktioniert auch, das heißt er gibt dann "alert('hi');" aus, wenn ich den Link allerdings klicke geht mit target='_blank' ein Fenster auf und das Script funktioniert nicht... HILFE!

        Comment


        • #5
          PHP Code:
           document.getElementById('artikel_bild').src = ... 
          was soll das denn sein?
          PHP Code:
          blubb = new Image();
          blubb.src "pfad/"+dateiname+"_"+bildnummer+"_gr.jpg"
          bilder steuert man über image an. oder du schreibst den pfad in eine variable. aber nicht sowas.

          und was soll
          PHP Code:
           return false
          poste mal den kompletten code.

          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Comment


          • #6
            Halloooo??? Ich will kein Bild ansteuern, sondern einen Link. Der Link hat ein onclick event, das getauscht werden soll. Der Link hat einen ID, nämlich "artikel_zoom_link". In sofern ist das so schon ok so. Was mich wundert ist, dass der alert Befehl ja auch das richtige ausgibt, aber beim Klick auf den Link trotzdem das Falsche passiert.

            Comment


            • #7
              und was bezweckst du damit?
              PHP Code:
              document.getElementById('artikel_bild').src 
              aber beim Klick auf den Link trotzdem das Falsche passiert.
              schon mal die javascript-konsole vom firefox bemüht? kommen da fehlermeldungen?

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Comment


              • #8
                Mit

                PHP Code:
                document.getElementById('artikel_bild').src 
                tausche ich das Bild. Aber das ist nicht das Problem und funktioniert. Es funktioniert auch der Tausch des Links mit .href Offenbar geht auch das setzen des onclick events. Nur funktioniert das hinterher nicht. Das return false ist dafür, dass der Link nicht ausgeführt wird, wenn das onclick event funktioniert (der user also offenbar javascript aktiviert hat).

                Comment


                • #9
                  Gelöst

                  So, für alle die die Lösung interessiert:

                  Mit

                  PHP Code:
                  document.getElementById('artikel_zoom_link').setAttribute("onclick""..."); 
                  lässt sich nur der Name der aufgerufenen Funktion ändern. Ich muss aber völlig andere Argumente mit übergeben. Das funktioniert mit:

                  PHP Code:
                       document.getElementById('artikel_zoom_link').onclick = function() { NeueFunktion(Argument1Argument2); }; 

                  Guten Rutsch für alle!

                  Comment


                  • #10
                    nö, mit setAttribute kannst du auch andere Argumente übergeben.

                    document.getElementById('artikel_zoom_link').onclick = function() { NeueFunktion(Argument1, Argument2); }; ist ca das selbe wie wenn du sowas machst:

                    document.getElementById('artikel_zoom_link').setAttribute("onclick", "meinefunktion("+Argument1+","+Argument2+");");

                    Mit deiner Variante erstellst du jedes mal eine neue Funktion, was unnötig ist.

                    Comment


                    • #11
                      Aber warum funktioniert dann das hier nicht:

                      PHP Code:
                      document.getElementById('artikel_zoom_link').setAttribute("onclick""alert('hi');"); 

                      Comment


                      • #12
                        oh, tut mir Leid. Ich habe eben erst gesehen, dass setAttribute bis IE 7 nicht funktioniert. Bei z.B. Mozilla sollte es gehen.

                        Comment


                        • #13
                          Cool, alles klar. In jedem Fall danke!
                          Mit meiner Lösung funktioniert es jetzt ja.

                          Comment

                          Working...
                          X