Onclick per JS ändern klappt nicht
Ajax Lauch
- javascript
Hi,
ich will einen Funktions aufruf ändern indem ich das onclick per JS manipuliere.
ich will keine neue Funktion reinschreiben nur in der vorhandenen Parameter ändern.
Hier mein Ansatz:
document.getElementById(elements[i].id).onclick = 'open_tab('+elements[i].id+','+neu+')';
Das hab ich bei Google gefunden
document.getElementById(elements[i].id).onclick = new Function("alert('hallo')");
document.getElementById(elements[i].id).onclick = 'open_tab('+elements[i].id+','+neu+')';
Das Übergeben der id ist vermutlich unnötig, weil du in der Handlerfunktion auf das verarbeitende Element über »this« zugreifen kannst - und damit auf über this.id auf dessen ID.
Wenn sich neu innerhalb der Schleife nicht ändern, kannst du schreiben:
var neu = "irgendwas";
var handler = function () {
open_tab(this, neu);
};
for (... elements ...) {
document.getElementById(elements[i].id).onclick = handler;
}
Mathias
document.getElementById(elements[i].id).onclick = new Function("alert('hallo')");
Schätze, du hast das Element schon? Dann kannst du auch gleich elements[i] manipulieren. new Function ist fast immer unnötig.
Ergo:
elements[i].onclick = function(){alert('hallo')};
Wenn du onclick-events in einer Schleife setzt, ist zudem Vorsicht geboten:
http://yuiblog.com/blog/2006/09/26/for-in-intrigue/