我开始使用js和编码,我尝试使用谷歌地图+地点api建立一个网站,所以当键入“餐馆或酒吧或其他”以在地图和侧边栏上显示这项业务时。
http://jsbin.com/ayugun/46/edit
所有代码都可以在没有侧栏代码的情况下正常工作:
var side_bar_html = "<a href='javascript:google.maps.event.trigger(gmarkers["+parseInt(gmarkers.length-1)+"],\"click\");'>"+place.name+"</a><br>";
document.getElementById('side_bar').innerHTML += side_bar_html;
但我需要修复此代码才能使其可行。 所以当我输入“餐厅或酒吧等”时在地图上和#side_bar上显示我
我的侧边栏代码中的错误是什么?
对不起我的englsih,不是很好,但我学习英语和编码很难学习。谢谢
答案 0 :(得分:0)
您的gmarkers
变量未定义。它根本没有达到将其附加到'side_bar'的部分。
另外,为什么不这样做?
var sideClick = jQuery("<a class=side_click href='#'></a>");
$(sideClick).html(place.name);
$("#side_bar").append(sideClick);
$(sideClick).on("click", function() {
google.maps.event.trigger(gmarkers[parseInt(gmarkers.length-1)], "click");
});
您的初始代码存在问题 - 它无法访问place
变量(除了javascript:
是一种不好的做法)。因此,通过将其全部放入google.maps.event.addListener(searchBox, 'places_changed', function() {..}
的回调中,它现在可以访问place
变量并获得当前循环name
的{{1}}值。
我仍然不确定place
是什么(也许,它应该是gmarkers
(拼写错误)?)。它没有在任何地方声明。
以下是工作版本(没有markers
部分,但仍然已损坏):http://jsbin.com/ayugun/54/
您可能希望了解有关JavaScript中闭包的更多信息:
Good answers about it on StackOverflow。
Material from Google docs for the Maps.(在事件监听器中使用闭包标题下的部分)。此示例与Google地图相关,非常适合展示现实生活中的封闭效果。