Dynamische Eventhandler erzeugen
Kaja
- javascript
0 Gernot Back0 molily0 Kaja
Hi,
ich bin auf der Suche nach einer Möglichkeit, um dynamisch Event Handlern eine Funktion zuzuweisen. Das Ganze brauche ich, um eine DOM Klasse zu bauen, um mir Nodes erstellen zu können. Bekanntermasen funktioniert node.setAttribute bei Eventhandlern nicht in allen Browsern, also suche ich eine Möglichkeit, um den Aufruf
node.onsubmit = function() { 'call' };
auszuführen, wobei ich 'call' an die Funktion übergebe.
Ein eval() funktioniert leider nicht, oder was mache ich falsch?
eval('function() {' + call + '}');
Danke
Kaja
Hallo Kaja,
node.onsubmit = function() { 'call' };
auszuführen, wobei ich 'call' an die Funktion übergebe.
(... ) , oder was mache ich falsch?
Meinst du so etwas:
node.onsubmit = function() { call(); }
Wenn ja, was genau macht denn diese andere Funktion call()?
Macht sie etwas mit dem node oder einem seiner Nachfahrenselemente, an den du den Eventhandler gebunden hast, dann kannst du innerhalb der Funktion call() mit this
arbeiten.
Gruß Gernot
Hallo nochmal,
sorry, meinte meinerseits eher so etwas:
node.onsubmit = call;
Dann kannst du den node mit this ansprechen.
Gruß Gernot
Hallo,
ich bin auf der Suche nach einer Möglichkeit, um dynamisch Event Handlern eine Funktion zuzuweisen.
node.onsubmit = function() { 'call' };
eval('function() {' + call + '}');
Call soll für eine String-Variable mit dem Programmcode der zu erstellenden Funktion stehen? Dann kannst du folgende Schreibweise verwenden:
new Function("Programmcode der Funktion");
also
node.onsubmit = new Function(call);
wobei ich 'call' an die Funktion übergebe
Wie ist das gemeint?
Mathias
Vielen Dank,
das scheint genau das zu machen, dass ich erwartet habe.
mit "call" war der Funktionscode gemeint, sorry, falls das etwas unklar ausgefrückt war...
sieht aber super aus.
Kaja
Hallo,
ich bin auf der Suche nach einer Möglichkeit, um dynamisch Event Handlern eine Funktion zuzuweisen.
node.onsubmit = function() { 'call' };
eval('function() {' + call + '}');Call soll für eine String-Variable mit dem Programmcode der zu erstellenden Funktion stehen? Dann kannst du folgende Schreibweise verwenden:
new Function("Programmcode der Funktion");
also
node.onsubmit = new Function(call);wobei ich 'call' an die Funktion übergebe
Wie ist das gemeint?
Mathias