Kaja: Dynamische Eventhandler erzeugen

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

  1. 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

    1. Hallo nochmal,

      sorry, meinte meinerseits eher so etwas:

        
      node.onsubmit = call;  
      
      

      Dann kannst du den node mit this ansprechen.

      Gruß Gernot

  2. 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

    1. 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