вызвать функцию JavaScript из рельсов - PullRequest
2 голосов
/ 10 марта 2012

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

Каков наилучший подход для принудительного вызова функции 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 обновляется после завершения документапогрузка.

1 Ответ

0 голосов
/ 10 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...