你好,我想知道是否有人可以帮助我,因为我已经让自己陷入了一点困境,我不知道如何解决这个问题。
我使用这个页面是为了让用户能够通过复选框选择和取消选择地图上的标记。然后,他们可以单击地图上的任何标记,或者通过左侧侧边栏,从右侧侧边栏的下拉菜单中选择半径设置,并在给定半径内搜索POI。
我想做的是改变左边的侧边栏,以匹配右边的格式。
我知道需要修改的代码是:
function myclick(i) {
google.maps.event.trigger(gmarkers[i],"click");
}
// == rebuilds the sidebar to match the markers currently displayed ==
function makeSidebar() {
var html = "";
for (var i=0; i<gmarkers.length; i++) {
if (gmarkers[i].getVisible()) {
html += '<a href="javascript:myclick(' + i + ')">' + gmarkers[i].myname + " - " + gmarkers[i].myfinds + " Finds made" + '</a><br>';
}
}
document.getElementById("side_bar").innerHTML = html;
}
我已经尝试用下面的代码替换它,下面的代码取自创建右侧侧边栏的脚本。
function createSidebarEntry(marker2, sitedescription, distance) {
var div = document.createElement('div');
var html2 = '<b>' + sitedescription + '</b> (' + distance.toFixed(1) + ' miles) <br/>';
div.innerHTML = html2;
div.style.cursor = 'pointer';
div.style.marginBottom = '5px';
google.maps.event.addDomListener(div, 'click', function() {
google.maps.event.trigger(marker2, 'click');
});
google.maps.event.addDomListener(div, 'mouseover', function() {
div.style.backgroundColor = '#eee';
});
google.maps.event.addDomListener(div, 'mouseout', function() {
div.style.backgroundColor = '#fff';
});
return div;
}
这是我到目前为止所做的。我可以让标记出现在地图上,但我不能让左侧的侧边栏渲染。
我已经为这个工作了好几天了,我似乎只是在兜圈子。我只是想知道是否有人可以看看这个,让我知道我错在哪里。
非常感谢和亲切的问候
为什么你对它不起作用感到惊讶?问题是在你的功能makeSidebar()
,它应该做的工作(?),但因为它写的东西很奇怪…首先,创建一个新的div
,它不放在dom的任何地方(它可能应该放在侧边栏中,但侧边栏没有在这个函数中使用!)。函数执行for循环,但它在第一次迭代中返回!所以实际上它什么也不做。
继续调试你的代码。使用Firebug调试器来跟踪它!