-1

項目ごとに JavaScript 関数を動的に作成しており、後でそれらを呼び出したい、コード コメントの詳細

  var i=0;
  $(this).find("Tasks").each(function (i, e) {
    i++;
    function dynamicFunction+ i(){ }
  )};
  // this will result as dynamicFunction1, dynamicFunction2, dynamicFunction3 ... so on
  //now i want to call them under antoher function
  //so my doing this
  for(var k=0;k<=i;k++)
   {
     dynamicFunction + k(); // this is not working
   }
4

2 に答える 2

1

個々の関数を使用する必要がある場合は、それらを配列に保存して、後でその配列を反復処理しないでください。

  var funcArr = [];
  $(this).find("Tasks").each(function (i, e) {
      funcArr.push(function(){
          //some code
      });
  )};

  for(var k = 0; k < funcArr.length; k++)
  {
      funcArr[k]();
  }
于 2013-05-24T18:06:26.220 に答える
1

function foo() { }は (ほぼ) と同等であることを思い出してくださいwindow["foo"] = function() { }。したがって、これらの動的に名前が付けられた関数を作成するには、次のことができます

var i = 0;
$(this).find("Tasks").each(function(i2, e) {
    i++;
    window["dynamicFunction" + i] = function() { }
)};

for(var k=0;k<=i;k++) {
    window["dynamicFunction" + k]();
}

グローバルではなく、window代わりに専用変数を使用する必要があります。

于 2013-05-24T18:06:42.613 に答える