event-Handler für alle Bilder
SorgenKind Mech
- javascript
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 ;)
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);
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
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
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!
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
Hallo,
Hi,
[...]
MfG ChrisBah 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 ...
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
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
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.
Om nah hoo pez nyeetz, SorgenKind Mech!
molily hat ein Super-Tutorial verfasst.
Matthias
@@Matthias Apsel:
nuqneH
molily hat ein Super-Tutorial verfasst.
Ja, und besonders das Kapitel zu Event-Delegation ist von Interesse.
Qapla'
@@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!
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