• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

eventlistener-Kollisionshandling

Status
Für weitere Antworten geschlossen.

FunkyMonkey

New member
Guten Abend

Gibt es einen Weg für ein und dasselbe Element zwei Eventlistener vom Typ "onchange" zu registrieren, ohne das der letztnotierte den erstnotierten überschreibt?

Mein Ansatz: Vor dem setzen eines Eventlisteners per Javascript herausfinden, ob bereits einer existiert. Wenn ja, dann die Funktion dieses Eventlisteners um weitere Anweisungen erweitern (falls machbar).

Oder gibt es noch einen eleganteren weg dieses Problem zu lösen?
 
finde jedesmal zu fragen aber äußerst bequem. Dafür sind die Foren ja da. Und vergesst nicht, das ich (und mein Kollege ebenso) oft auf die Werbung klicken, um Euch zu supporten.

User können nervige Fragen stellen, aber sind für jede Website Gold wert. Der Wert einer Website bemisst sich schließlich daran, wie stark sie genutzt wird. Also: Seid stolz auf uns!
 
Habe testweise mal eine Funktion geschrieben die mit addEventListener bzw. attachEvent (MSIE) arbeitet:

Code:
var textareas_num = document.getElementsByTagName("TEXTAREA").length;
for(var j = 0; j < textareas_num; j++){
	var textarea_element = document.getElementsByTagName("TEXTAREA")[j];
	addEvent(textarea_element, 'keyup', textareaEventFunction);
	addEvent(textarea_element, 'change', textareaEventFunction);
}
function textareaEventFunction(e){
	if(!e) e = window.event;
	var eo = e.srcElement || e.target;
	alert(eo.value);
}

function addEvent(eo, eventType, function_name){
	if (eo.addEventListener) {
		eo.addEventListener(eventType, function_name, false);
	} else if (eo.attachEvent) {
		eo.attachEvent("on"+eventType, function_name);
	}
}

leider klappt es nicht so wie es sollte. Firebug meldet:

uncaught exception: Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://anydomainname.de/jstest.html :: addEvent :: line 806" data: no

Zeile 806 ist irgendwo im Nirwana (nur html, kein js). Was ist faul? Habe schon alles durchprobiert... Funktionsname als Parameter in addEvent mit und ohne Singlequotes...

Google schlägt es genau so vor.

Edit: Ich vermute das Problem liegt in der Übergabe des Events an die aufzurufene Funktion? (e)
Wie übergebe ich das entsprechende Element an die Funktion? Oder wie greife ich in der vom Eventhandler aufgerufenen Funktion auf das Element zu?
 
Zuletzt bearbeitet:
finde jedesmal zu fragen aber äußerst bequem. Dafür sind die Foren ja da. Und vergesst nicht, das ich (und mein Kollege ebenso) oft auf die Werbung klicken, um Euch zu supporten.

User können nervige Fragen stellen, aber sind für jede Website Gold wert. Der Wert einer Website bemisst sich schließlich daran, wie stark sie genutzt wird. Also: Seid stolz auf uns!
Drei Fragen pro Zeile Code sind schon 'ne Menge. Ihr habt euch mit dem Projekt völlig übernommen und programmiert wild ins Blaue hinein. Euch fehlen, wie es scheint, die kompletten Grundlagen der Webprogrammierung. Den Code möchte ich erst gar nicht sehen - ach ja richtig: Code zeigen ist ja nicht so euer "Ding".

Wenn wir schon euer Projekt für euch programmieren sollen, dann gib uns wenigstens einen FTP Zugang... (ich schreib's lieber dazu: das war ironisch gemeint)

Sollten Du oder Dein Spezi noch einen neuen Thread aufmachen wollen, dann liefert gefälligst __ALLE__ Informationen, um euer Problem vollständig nachzuvollziehen.

Thread closed.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben