2

Я пытаюсь заполнить список городов, а также пометить их на картах, используя AJAX. Я обновляю элемент div со списком городов и для каждого элемента города. Я пытаюсь вызвать addmarker(), которая должна добавить маркер поверх карт google. using firebug Я могу видеть тег javascript с вызовом функции, но addmarker() не выполняетсявызов функции javascript из rails

Каков наилучший подход к принудительному вызову функции javascript, а также к обновлению элемента dom?

вот как мой addmarker() выглядит следующим образом:

function addmarker(lat,lng,title_new) 
    { 
    new_marker = new google.maps.Marker({ 
      position: latlng_new, 
      map: map, 
      title:title 
      }); 
    } 

Вот как мой файл html.erb выглядит

 <%= post.content %> 
     <script type="javascript"> addmarker(<%= post.lat_long%>, <%= post.title%>);   
     </script> 
    </div> 

элемент DOM обновляется после того, как документ, по окончании загрузки ,

ответ

0

Я не слишком четко понимаю, что именно вы делаете, это AJAX и как работает addMarker? Вы уверены, что документ был полностью загружен до вызова функции? Независимо от того, когда вы заполняете каждый div городом (я предполагаю, что у вас есть какая-то петля в вашем ответе), самым быстрым и грязным способом является прямое вызов функции javascript с каждым элементом. Например, в вашей точке зрения:

<% @response.each do |city| %> 
    ... #whatever 
    <script> 
     <%= "addMarker(#{city})" %> 
    </script> 
<% end > 

Следует отметить, однако, что это навязчивая яваскрипт и действительно некрасиво, так что вы можете пересмотреть этот подход. На этой теме есть много статей. Here's быстрый, который я нашел. Вместо этого я передал бы весь объект результата функции javascript в верхней части страницы, которая повторяет результаты и добавляет маркеры.

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