php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.09.2011, 19:56  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mehreren Bildern einen EventListener verpassen

Moin allerseits,

Ich stehe vor folgendem Problemchen (und kenne mich mit dem Thema Event-Handling noch nicht sonderlich gut aus):

Ich habe eine Tabelle in der in jeder Zelle ein Bild steckt.
Nun möchte ich allen diesen Bildern einen EventListener zuweisen, der auf das onlick-Event lauscht. Bei einem Klick auf ein Bild soll etwas passieren.
Das Ganze soll hinterher so eine Art Memory-Spiel geben. Ich klicke auf ein Bild und es passiert etwas (z.B. Bildwechsel o.ä.).

Hierzu habe ich folgenden Code geschrieben:

Code:
window.onload = function() {
for (huetchen in document.getElementById("tabelle").getElementsByTagName('img')) {
      huetchen.addEventListener(
	   "click",
	   function() {
	   alert("Klick!");
	   }
      )
}
}
Fällt jemandem hier schon ein Fehler auf?
Firebug meldet mir "huetchen.addEventListener is not a function".

Für Hilfe wäre ich dankbar.

Gruß, EG
EG2011 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.09.2011, 20:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Code:
for (index in foo)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.09.2011, 20:20  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay, die Variable Huetchen wird also nicht wie z.B. in Java mit dem Objekt gefüllt, sondern ist schlichtweg ein Index, richtig?

So funktioniert es nun, allerdings bleibt die Fehlermeldung "huetchen.addEventListener is not a function" in Firebug trotzdem bestehen:
Code:
				window.onload = function() {
					for (huetchenIndex in document.getElementById("tabelle").getElementsByTagName('img')) {
					huetchen = document.getElementById("tabelle").getElementsByTagName('img')[huetchenIndex];
					huetchen.addEventListener(
						"click",
						function() {
						alert("Klick!");
						}
					)
					}
				}
Hmm.....
EG2011 ist offline   Mit Zitat antworten
Alt 21.09.2011, 20:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Warum machst Du den Lookup doppelt? Das ist doch unnötig!
PHP-Code:
window.onload = function() {
  var 
images document.getElementById("tabelle").getElementsByTagName('img');
  for (
index in images) {
    
images[huetchenIndex].addEventListener("click", function() {
        
alert("Klick!");
      }
    );
  }

Die nächste Kritik wäre, dass DU window.onload brachial überschreibst
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.09.2011, 20:34  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klar, du hast Recht, doppelt is nie gut. Habe es angepasst.

Wie gesagt, bin noch nicht so firm mit den Events.
Meine Tabelle wird via PHP aufgebaut und dann über JS mit Bildern gefüllt.
Ich wollte sicherstellen, dass das auf jeden Fall passiert ist bevor ich den Bildern EventListener verpasse.
Welche bessere Möglichkeit gäbe es denn da?

Gruß, EG
EG2011 ist offline   Mit Zitat antworten
Alt 21.09.2011, 20:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Gar keine. Nur überschreibst Du damit eventuell vorhandene onLoad events. Die gesetzten sollte man vorher abfragen und im neuen Callback mit aufrufen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.09.2011, 20:39  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 141
PHP-Kenntnisse:
Anfänger
EG2011 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ah okay. Andere hab ich da allerdings noch nicht.
Ich werde versuchen mich an deine Worte zu erinnern falls ich damit mal Probleme kriegen sollte .

Danke dir!
EG2011 ist offline   Mit Zitat antworten
Alt 21.09.2011, 21:18  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Mal ne blöde Frage.

Was steht normaler in einem Eventlistener an der Stelle?

PHP-Code:
alert("Klick!"); 
Ich kapiere das mit den Evenlistenern ne so wirklich.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 21.09.2011, 21:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Alles was Du willst, was onClick passieren soll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2011, 08:55  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

eben bei einem Memory Spiel würde das Bild des Elements ausgetauscht ... der Fantasie sind fast keine Grenzen gesetzt
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
slideshow mit mehreren bildern? bitte um hilfe lwallens PHP Tipps 2009 3 15.08.2009 14:22
Mehrere Auflösungen von hochgeladenen Bildern, Ansatz christophM PHP Tipps 2009 1 26.05.2009 15:13
Verständnisfrage: Aufruf von mehreren Usern vegeta PHP Tipps 2006 2 02.06.2006 15:39
[Erledigt] MySQL Abfrage aus mehreren Tabellen Datenbanken 1 12.04.2005 17:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\.addeventlistener is not a function\, javascript allen tabelleneinträgen einen eventlistener geben, add code from window bilder php, php event listener

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum