2
我有一张地图,其中使用geoJSON加载标记。以编程方式无法打开弹出菜单
当地图加载时,我运行一个函数buildVisibleSys
,它负责在地图上建立一个当前可见系统的列表。
这个功能看起来是这样的:
buildVisibleSys = function() {
var bounds, visibleSys;
visibleSys = [];
bounds = map.getBounds();
return systemLocations.eachLayer(function(marker) {
var link;
link = onScreenEl.appendChild(document.createElement('a'));
link.href = '#';
link.id = "marker" + marker._leaflet_id;
link.innerHTML = marker.options.title;
link.onclick = function() {
marker.openPopup();
map.panTo(marker.getLatLng());
};
});
};
map.on('load', buildVisibleSys);
在此功能中,对每一层即时得到一些数据,并建设有每个标记的名称的HTML块。每个与link
var关联的名称都附有一个onclick事件,该事件将将地图置于对应标记上。除了marker.openPopup()
致电我还有onclick
事件。
任何想法,我在这里想念什么?
我还提供代码在这里的演示: http://jsfiddle.net/lmartins/z8wBW/
UPDATE: 更加混乱,在我看来,与鼠标悬停同样的方法就没有这个问题,那就是,在上面的函数下面的代码做打开弹出:
link.onmouseover = function(ev) {
marker.openPopup();
marker._icon.classList.add('is-active');
};