我有一个棘手的问题。 我使用DOM创建一个表。 创建此网格后,我会根据从数据库中获取的某些“规则”填充每个单元格,使其呈现红色或绿色。 在我的代码中,我为每个“规则”循环整个网格一次,因此有时候一个单元格可以被多次着色(但这不是问题)。 在同一个循环中,我给每个绿色单元格一个onclick函数,使用闭包传递规则id(对于每个整个网格循环,这个id显然是唯一的,正如我所说,每个规则都重复这个)。我的问题是,我想跟踪规则的每个id,其中绿色的单元格为绿色。在这一刻,我只能跟踪给我的细胞着色的规则的最后一个id。 这是代码:
//here is the cycle and other operations to create the cell element and colouring it green
//this is the function that binds the rule id to the onclick event,
passing it to a separate function
pickedCell.onclick=(function(){
var current_id_policy=id_policy
return function(){policyToString(current_id_policy);
}
})();
//this is the function called
function policyToString(id_policy){
alert("Rule n."+id_policy);
}
正如我所说,我的目标是跟踪每个id绿色单元格规则的policyToString函数。我在网上搜索,但可能我不太喜欢那种(也许!)高级编码。有什么线索吗?