ruby-on-rails - 从 rails 调用 javascript 函数

标签 ruby-on-rails ruby-on-rails-3 google-maps ruby-on-rails-3.1 google-maps-markers

我正在尝试填充城市列表并在 map 上标记它们,使用 AJAX 我正在使用城市列表更新 div 元素,对于每个城市元素我正在尝试调用 addmarker() 函数,它是应该在谷歌地图上添加一个标记。 使用 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 元素在文档加载完成后更新。

最佳答案

我不太清楚你到底在做什么,这是 AJAX 吗?addMarker 是如何工作的?您确定在调用该函数之前文档已经完全加载了吗? 无论如何,当您用城市填充每个 div 时(我假设您在响应中有某种循环),最快和最脏的方法是直接调用每个元素的 javascript 函数。例如在您看来:

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

但是您应该注意,这是一种突兀的 javascript,而且非常丑陋,因此您可能需要重新考虑这种方法。有很多关于这个主题的文章。 Here's我很快找到了一个。相反,我会将整个结果对象传递给页面顶部的 javascript 函数,该函数遍历结果并添加标记。

关于ruby-on-rails - 从 rails 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644733/

相关文章:

ruby-on-rails - Rails 访问模型中模块中的共享自定义验证

ruby-on-rails - 部署期间预编译 Assets 失败

ruby-on-rails - 利用 Nginx 的浏览器缓存问题

google-maps - 如何为Google Places API启用CORS

android - 如何将我当前位置的 map 绘制到特定的纬度经度值

android - 自定义 InfoWindowAdapter 没有背景

ruby-on-rails - 如何使用 AWS OpsWork 部署 2 个或更多 Rails webapps?

ruby-on-rails - Rails 3 - 构建一个表,想要交替每行的颜色

ruby-on-rails - Rails - 处理异常

ruby-on-rails - 在 Ruby on Rails 中嵌入博客