【发布时间】:2010-03-04 16:37:24
【问题描述】:
我在使用 jQuery 将函数绑定到元素时遇到了一些困难。基本上我有一组使用 JSON 加载的 div。每个 JSON 项都有一个关联的“动作”,它定义了单击该 div 时要调用的函数。
当我遍历每个 JSON 项时,我会这样做(为清晰起见进行了编辑):
for (var i = 0; i < JSONOBJECT.length; i++) {
var divbox = $('<div id="' + i + '"><img /></div>');
var action = JSONOBJECT[i]["action"];
$(divbox).click(function () {
eval(action); // bind function
});
$('.navigationarea').append(divbox); // Append to area
}
例如,JSONOBJECT[0]["action"] 可以包含"doThis()",而JSONOBJECT[1]["action"] 可以包含"doThis2()"。
问题在于action 总是最终成为与 JSON 对象中的最后一项关联的操作。我知道这是与本地化变量(或制作副本?)有关的问题,但我错过了它。
我能得到一些帮助吗? 提前致谢。
【问题讨论】:
标签: javascript jquery json