下面是我们正在努力做的:使用相同的变量2个功能在javascript
$(document).ready(function()
{
for (var i = 0; i < 10; i++)
{
for (var j = 0; j < 15; j++)
{
$('#Row'+(i+1)+'Sub' + (j+1) + '_ClientDropDown').ready(function()
{ TrimServices_Function("Row" + (i+1) + "_Sub" + (j+1).ToString() + "_ClientDropDown"); })
}
}
})
不幸的是,JavaScript并没有真正通过i和j进入第二正常工作。当在做其他测试警报它将创建一个具有正确的初始呼叫一条线,但随后另一部分只是返回10和15。因此,可以说线5分7将是:
$('#Row5Sub7_ClientDropDown').ready(function()
{ TrimServices_Function("Row11_Sub16_ClientDropDown"); })
我们怎么会去制作确定我们通过行和子匹配的行循环?
它的正常工作。你正在创建一个闭包变量,每次通过循环改变它们的值。所以当函数稍后执行时,这些变量的值是捕获这些变量的最终值,而不是函数传递给ready()时的值。这是关闭的正确行为。 – RJM
这是这个问题的答案:http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – RJM
用'let'替换for循环中的'var'。 – 2017-04-26 02:31:15