KmG: functionname abhänig von Variable

Hallo,
ich will durch ein Array gehen und jedem Array Element eine bestimmte onclick Funktion zuweisen. Der Name der onclick Funktion, die zugewiesen werden soll, soll dabei vom Schleifenparameter abhängen, gibt es eine Möglichkeit das zu realisieren?

Bsp:~~~javascript

for(var i=0;i<LTabArray.length;i++){
LTabArray[i].onclick = function(){'TAB'+i+'BTN_onclick();'};
}

Also bei i=1 soll folgendes ausgeführt werden:~~~javascript
  
LTabArray[1].onclick = function(){TAB1BTN_onclick();};  

Gruß
KmG

  1. Dass man einer Funktion Parameter mitgeben kann ist dir bekannt?

    1. Dass man einer Funktion Parameter mitgeben kann ist dir bekannt?

      Ja das ist mir bewusst.
      Das Problem ist, das die Funktionen momentan so generiert werden, das ich keinen Einfluss auf die Parameter habe.

      1. Mahlzeit KmG,

        Das Problem ist, das die Funktionen momentan so generiert werden, das ich keinen Einfluss auf die Parameter habe.

        Und was hindert Dich daran, dafür eine Wrapper-Funktion zu schreiben, die ungefähr folgendermaßen aussieht:

        function BTN_onclick(tab) {  
          switch (tab) {  
            case 1:  
              TAB1BTN_onclick();  
            break;  
          
            case 2:  
              TAB2BTN_onclick();  
            break;  
          }  
        }
        

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Bsp:~~~javascript

    for(var i=0;i<LTabArray.length;i++){
    LTabArray[i].onclick = function(){'TAB'+i+'BTN_onclick();'};
    }

      
    Hier kannst du das simpler gestalten (vorallem müsste es auch so funktionieren):  
    `LTabArray[i].onclick = eval('TAB'+i+'BTN_onclick');`{:.language-javascript}  
      
    Habs net getestet, müsste aber eigentlich so funktionieren, auch wenn mir bestimmt gleich alle den Kopf abreißen wegen dem eval :-|  
      
    MfG  
    thecreep
    
    1. Mal aus dem Kontext gerissen:

      eval ist BBBBBÖÖÖÖÖÖÖÖÖSSSSSSEEEEEEE!!!!

      Wenn man auf eval zurückgreifen muss, läuft irgendwas falsch. Unter dem Stichwort "eval is evil" findet man bei Google genügend Argumente gegen das Benutzen.

      MfG Hase

  3. Moin moin,

    ich will durch ein Array gehen und jedem Array Element eine bestimmte onclick Funktion zuweisen. Der Name der onclick Funktion, die zugewiesen werden soll, soll dabei vom Schleifenparameter abhängen, gibt es eine Möglichkeit das zu realisieren?

    Ja. Funktionen sind nichts anderes als ausführbare Variablen und globale Variablen sind nichts anderes als Attribute vom globalen Objekt, dh. window.

    Somit könntest du folgendes probieren:

    for(var i=0; i<LTabArray.length; i++){  
        LTabArray[i].onclick = window['TAB'+i+'BTN_onclick'];  
    }
    

    Das ist zwar nicht schön und keine gute Programmierung, sollte aber klappen. Vllt kannst du nochmal probieren das ganze anders anzugehen.

    MfG Hase