0
我在使用jQuery将一个函数绑定到一个元素时遇到了一些困难。基本上我有一组使用JSON加载的div。每个JSON项目都有一个关联的“操作”,用于定义在单击该div时要调用的函数。jQuery绑定到元素的顺序?
我走过每一个JSON项目的重复,我(editied为清楚起见):
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对象中最后一项关联的操作。我知道这是一个与本地化变量(或制作副本?)有关的问题,但我错过了它。
我可以得到一些帮助吗? 在此先感谢。
谢谢。这是一个很好的实现建议,我也很好地重构了代码。 – Rio