OnClick Event verändern

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

  • 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');")

    Kommentar


    • #3
      selfhtml

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

      Kommentar


      • #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!

        Kommentar


        • #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

          Kommentar


          • #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.

            Kommentar


            • #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

              Kommentar


              • #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).

                Kommentar


                • #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!

                  Kommentar


                  • #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.

                    Kommentar


                    • #11
                      Aber warum funktioniert dann das hier nicht:

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

                      Kommentar


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

                        Kommentar


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

                          Kommentar

                          Lädt...
                          X