2013-06-15 6 views
0

Я начинаю с js и кодирования, и я пытаюсь создать веб-сайт с Google Map + местами api, поэтому, когда вы набираете «ресторан или бар или т. Д.», Чтобы передать это дело на карту и на боковой панели.Google maps and places sidebar

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, не очень хорошо, но я учусь трудно выучить английский и coding.thanks

+0

вот рабочая версия, но без боковой панели http://jsbin.com/ayugun/48/edit –

ответ

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 значение текущего цикла place.

Я все еще не уверен, что с gmarkers (возможно, это должно быть markers (misspeling)?). Это нигде не объявлялось.

Здесь работает версия (без gmarkers части, она до сих пор работает): http://jsbin.com/ayugun/54/

Вам может понравиться, чтобы узнать больше о замыканиях в JavaScript:
Good answers about it on StackOverflow.
Material from Google docs for the Maps. (часть под Использование закрытий в прослушивателях событий). Этот пример связан с Google Maps и отлично подходит для отображения того, что закрывается в реальной жизни.

+0

спасибо, но когда я нажимаю ссылку на боковую панель, не открывайте infowindow (modalbox)? –

+0

также, когда я печатаю новый поиск, ссылки на боковой панели не изменены, почему? –

+0

1) Взгляните на код - на обратном вызове он выполняет «google.maps.event.trigger (gmarkers [parseInt (gmarkers.length-1)],« click »);». Который все еще сломан. Я понятия не имею, что такое «gmarkers» - он не определен. Вы должны выяснить, какую переменную вы хотите передать. 2) Что ты имеешь в виду? Он работает для меня в Chrome и Firefox, он добавляет новые ссылки на боковую панель при выполнении нового поиска. Я просто показываю рабочее закрытие, вы можете сгибать правила по своему усмотрению - 'empty()' sidebar на изменениях и т. Д. –

Смежные вопросы