我正在尝试从具有执行此操作的 xml 处理功能的某人的代码中学习:
$(xml).find("page").find("user").each(function(){
...
var user = $(this);
var userId = $(user).find("Id").text();
...
MAP.setMarkerClickListener(TRACKER.users[userId].mapMarker[0].marker,function (){
MAP.openInfoWindow(TRACKER.users[userId].mapMarker[0].infoWindow, TRACKER.users[userId].mapMarker[0].marker);
});
效果很好,但是我正在使用 JSON 构建一个应用程序,并且我尝试做类似的事情:
for (var i=0; i<json.users.length; i++) {
var user = json.users[i];
...
MAP.setMarkerClickListener(TRACKER.users[user.id].mapMarker.marker,function(){
MAP.openInfoWindow(TRACKER.users[user.id].mapMarker.infoWindow, TRACKER.users[user.id].mapMarker.marker);
});
我认为问题在于将原始 XML 的文本传递到函数中。在我的情况下,变量被传入,因此变量在函数使用的值中保存的最后一个值。我尝试将 JSON.stringify 变量转换为新变量,但它不起作用。
我的成功为每个标记添加了一个侦听器,但是它们调用执行函数,就好像它们是最后一个标记一样。
任何想法如何使用 JSON 进行这项工作?