我正在开发烟草店查找器 Windows 8.1 商店应用程序。主要思想是,当用户打开应用程序时,地图会放大到他的位置。该地图将烟草店显示为图钉。这些店铺的数据存储在一个json文件中,结构如下:
{
addr: Some street 12,
lng: longitude,
lat: lattitude,
open: {10:00-23:00, 20:00-22:00, and 5 more}
}
它包含地址、纵向位置、横向位置和商店的营业时间。
这是我用来将图钉放置在地图上正确位置的 javascript 代码:
var pins = [];
$.getJSON(dbURL, function (response) {
pins = response;
$.each(pins, function (i, item) {
var _location = new Microsoft.Maps.Location(item.lat, item.lng);
var pin = new Microsoft.Maps.Pushpin(_location, { description: i, icon: markerImgURL, height: markerImgHeight, width: markerImgWidth, draggable: false });
Microsoft.Maps.Events.addHandler(pin, 'click', showDetails);
map.entities.push(pin);
});
});
我为每个图钉添加了一个点击处理程序,因此当用户点击(或触摸)图钉时,会滑入一个带有详细信息的窗口。
这是我的showDetails()
功能:
function showDetails() {
var details = $("#details");
details.animate({
"right": parseInt(details.css("right")) == 0
? -1 * details.innerWidth() - 5
: 0
}, 500)
}
我的问题是,我真的不知道如何从这个函数访问那个单独的引脚的数据。我添加了一个 id 作为 pin 的描述,这将引用保存完整数据的“pins”数组,但如果我showDetails(i)
在$.each()
循环中调用该函数,应用程序将在启动时冻结。
tl; dr:如何在不将 id 传递给函数的情况下从外部函数访问图钉的描述属性?
谢谢!