138 votes

Comment appeler une méthode nommée dynamiquement en Javascript ?

Je travaille sur la création dynamique de JavaScript qui sera inséré dans une page web au fur et à mesure de sa construction.

Le JavaScript sera utilisé pour remplir un listbox sur la base de la sélection dans un autre listbox . Lorsque la sélection d'un listbox est modifié, il appellera le nom d'une méthode en fonction de la valeur sélectionnée dans le champ listbox .

Par exemple :

Listbox1 contient :

  • Colours
  • Shapes

Si Colours est sélectionné, il appellera un populate_Colours qui remplit une autre méthode listbox .

Pour clarifier ma question : Comment faire pour que populate_Colours en JavaScript ?

-2voto

Aylian Craspa Points 21

Voici une solution simple et efficace pour vérifier existence d'une fonction y le triage dynamique des fonctions par une autre fonction ;

Fonction de déclenchement

function runDynmicFunction(functionname){ 

    if (typeof window[functionname] == "function"  ) { //check availability

        window[functionname]("this is from the function it "); //run function and pass a parameter to it
    }
}

et vous pouvez maintenant générer la fonction dynamiquement, peut-être en utilisant php, comme ceci

function runThis_func(my_Parameter){

    alert(my_Parameter +" triggerd");
}

vous pouvez maintenant appeler la fonction à l'aide d'un événement généré dynamiquement

<?php

$name_frm_somware ="runThis_func";

echo "<input type='button' value='Button' onclick='runDynmicFunction(\"".$name_frm_somware."\");'>";

?>

le code HTML exact dont vous avez besoin est

<input type="button" value="Button" onclick="runDynmicFunction('runThis_func');">

-4voto

Gilberto Points 9

Essayez avec ceci :

var fn_name = "Colours",
fn = eval("populate_"+fn_name);
fn(args1,argsN);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X