SorgenKind Mech: event-Handler für alle Bilder

Huhu!

Einen wunderschönen guten morgen ;)

ich bin gerade dabei ne ganz kleine seite zu schreiben, allerdings hat diese seite viele kleine bilder, welche auch alle einen grooßen bruder oder eine große schwester haben.

nun gibt es einen unsichtbaren div-container, der sich zeigen kann um die große variante darzustellen

um nun nicht bei jedem bild einen link oder gar ein event-handler zu bestimmen, wie zum beispiel onclick=zeige_bild(this), dachte ich mir, ich klär das einfach mal generell:

window.onload=starte_imagehandler;
function starte_imagehandler()
{
for(i=0; i<document.images.length; i++)
{
quelle=document.images[i].src;
quelle2=quelle.split("_klein");
if(quelle2.length==2) document.images[i].onClick=zeige_bild(quelle);
}
}

_leider_ funktioniert das nicht so wie ich mir das vorgestellt habe, im IE9 beispielsweise wird die funktion zeige_bild sofort ohne onClick aufgerufen, UND auch ohne einen gültigen parameter (undefied)

ist meine idee so falsch, geht das überhaupt was ich mir vorstelle? oder habe ich hier einfach nur einen kleinen flüchtigkeitsfehler?

bin für jede antwort dankbar ;)

  1. Betrachte die 2 wesentlichen Unterschiede zwischen dem Zuweisen einer Funktion zu einem Event

    hier

    window.onload=starte_imagehandler;

    und hier

    document.images[i].onClick=zeige_bild(quelle);

    1. Betrachte die 2 wesentlichen Unterschiede zwischen dem Zuweisen einer Funktion zu einem Event

      hier

      window.onload=starte_imagehandler;

      und hier

      document.images[i].onClick=zeige_bild(quelle);

      öhm ... ja ... ich kann ja erst ein onclick-ereignis hinzufügen, wenn das element existiert, daher window.onload, wenn ich das einfach so machen würde, würde ich ja alle bilder durchlaufen zu einem zeitpunkt, wo noch keine bilder existieren ...

      oder hab ich das falsch verstanden? hilf mir bitte auf die sprünge

      LG SorgenKind Mech

      1. Hi,

        Betrachte die 2 wesentlichen Unterschiede zwischen dem Zuweisen einer Funktion zu einem Event

        hier

        window.onload=starte_imagehandler;

        und hier

        document.images[i].onClick=zeige_bild(quelle);

        öhm ... ja ... ich kann ja erst ein onclick-ereignis hinzufügen, wenn das element existiert, daher window.onload, wenn ich das einfach so machen würde, würde ich ja alle bilder durchlaufen zu einem zeitpunkt, wo noch keine bilder existieren ...

        oder hab ich das falsch verstanden?

        Ja, hast du - du solltest dir die wesentlichen *Unterschiede* beider Notationen klar machen (ohne die konkrete Funktionalität zu betrachten).

        Beim oberen weist du eine Funktionsreferenz zu; beim unteren hingegen rufst du eine Funktion direkt an dieser Stelle auf, und weist dann nur noch deren Rückgabewert zu.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hi,

          Betrachte die 2 wesentlichen Unterschiede zwischen dem Zuweisen einer Funktion zu einem Event

          hier

          window.onload=starte_imagehandler;

          und hier

          document.images[i].onClick=zeige_bild(quelle);

          Beim oberen weist du eine Funktionsreferenz zu; beim unteren hingegen rufst du eine Funktion direkt an dieser Stelle auf, und weist dann nur noch deren Rückgabewert zu.

          MfG ChrisB

          ah verstehe, danke, dann werde ich mich mal dem tut aus der anderen antwort bedienen, danke erstmal!

          1. Hallo,

            Hi,
            [...]
            MfG ChrisB

            ah verstehe, danke, dann werde ich mich mal dem tut aus der anderen antwort bedienen, danke erstmal!

            und dann arbeite bitte auch noch ein "tut", meinetwegen auch ein blas, über sinnvolles Zitieren durch.

            Ciao,
             Martin

            --
            Die junge Ehefrau weint sich bei ihrer Mutter aus:
            Er hat gesagt, ich soll mich zum Teufel scheren! - Und da kommst du ausgerechnet zu mir?!
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Hallo,

              Hi,
              [...]
              MfG ChrisB

              ah verstehe, danke, dann werde ich mich mal dem tut aus der anderen antwort bedienen, danke erstmal!

              und dann arbeite bitte auch noch ein "tut", meinetwegen auch ein blas, über sinnvolles Zitieren durch.

              Ciao,
              Martin

              hm, also deines finde ich nicht sehr sinnvoll
              du beziehst dich auf meinen zitierstil, nötigst aber andere in vorhergegangenen posts nachzulesen, wie ich denn nun überhaupt zitiert habe, da du den punkt, auf den du dich beziehst, eliminiert hast ...

              1. Hi,

                und dann arbeite bitte auch noch ein "tut", meinetwegen auch ein blas, über sinnvolles Zitieren durch.

                hm, also deines finde ich nicht sehr sinnvoll
                du beziehst dich auf meinen zitierstil, nötigst aber andere in vorhergegangenen posts nachzulesen, wie ich denn nun überhaupt zitiert habe, da du den punkt, auf den du dich beziehst, eliminiert hast ...

                nein, eben nicht. Ich habe genau das stehenlassen, worauf es ankommt, aber Überflüssiges gelöscht:

                Hi,
                [...]
                MfG ChrisB

                So long,
                 Martin

                --
                Die letzten Worte des Helden:
                Feigling! Traust dich ja doch nicht!
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                1. Hi,

                  und dann arbeite bitte auch noch ein "tut", meinetwegen auch ein blas, über sinnvolles Zitieren durch.

                  hm, also deines finde ich nicht sehr sinnvoll
                  du beziehst dich auf meinen zitierstil, nötigst aber andere in vorhergegangenen posts nachzulesen, wie ich denn nun überhaupt zitiert habe, da du den punkt, auf den du dich beziehst, eliminiert hast ...

                  nein, eben nicht. Ich habe genau das stehenlassen, worauf es ankommt, aber Überflüssiges gelöscht:

                  Hi,
                  [...]
                  MfG ChrisB

                  dann werden wir diesbezüglich heute leider unterschiedlicher meinungen auseinander gehen, denn eine gebrüßung und eine verabschiedung empfinde ich nicht als das, worauf es ankommt

                  ES SEI DENN du meinst, dass das hätte getilgt werden müssen, dann kann ich dir zustimmen, dass dies überflüssig ist, allerdings ist das für mich etwas zu penibel, und würde dies dann mal als ansichtssache ablegen ;)

                  liebe Grüße

                  der mech

                  1. Bounjoun SorgenKind Mech,

                    allerdings ist das für mich etwas zu penibel,

                    Es ist für die anderen penibel, mit deinem TUFO konfrontiert zu werden.

                    und würde dies dann mal als ansichtssache ablegen ;)

                    »Dem gegenüber empfiehlt die Netiquette einen verdichteten Zitierstil: Aus vorangegangenen Diskussionsbeiträgen werden nur einzelne Fragen oder Aussagen zitiert und mit speziellen Einrückungszeichen – üblicherweise einem vorangestellten „>“ – gekennzeichnet.« <- Aus dem von Martin verlinkten Wikipedia-Artikel

                    Dieser verdichtete Zitierstil ist im Forum erwünscht.

                    Adiou.

                    --
                    Ich bin eigentlich ganz anders, aber ich komme so selten dazu. - Ödön von Horwáth
                    Ist Rudi Carrell Gott? Oder George Harrison Ford?
                    Ich bin faul und das ist gut so.
  2. Om nah hoo pez nyeetz, SorgenKind Mech!

    molily hat ein Super-Tutorial verfasst.

    Matthias

    --
    1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. @@Matthias Apsel:

      nuqneH

      molily hat ein Super-Tutorial verfasst.

      Ja, und besonders das Kapitel zu Event-Delegation ist von Interesse.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. @@Matthias Apsel:

        nuqneH

        molily hat ein Super-Tutorial verfasst.

        Ja, und besonders das Kapitel zu Event-Delegation ist von Interesse.

        Qapla'

        Ihr seid ja spitze! ;)

        hab das jetzt so gelöst:

          
        document.body.onclick=starte_imagehandler;  
        function starte_imagehandler(e)  
        {  
        	var e = e || window.event;  
        	var target = e.target || e.srcElement;  
        	if(target.nodeName.toUpperCase()=="IMG")  
        	{  
        		quelle=target.src;  
        		quelle2=quelle.split("_klein");  
        		if(quelle2.length==2) zeige_bild(quelle);  
        	}  
        }  
        
        

        vielen Dank nochmal!

      2. Om nah hoo pez nyeetz, Gunnar Bittersmann!

        Ja, und besonders das Kapitel zu Event-Delegation ist von Interesse.

        Je nach Kenntnisstand das gesamte Kapitel 9, leider gibts da keinen Link.

        Matthias

        --
        1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif