我的jquery渲染部分没有在里面运行javascript

时间:2011-10-02 20:10:44

标签: jquery ruby-on-rails ruby-on-rails-3 google-maps

所以我发送一些参数到我的控制器(通过ajax),以便检索一些记录,然后通过加载部分显示javascript的结果。在部分Im循环检索记录数组并显示每个,但我也试图在我的页面的head标签中调用javascript函数,并从我的数组传递数据。

但是,当我使用firebug查看javascript甚至不存在的页面时,javascript调用无法正常工作。

基本上我试图用检索到的信息更新谷歌地图。

这是我呈现的部分:

  <ol class="shop_list">
    <% @shops.each do |s| %>
      <script type="text/javascript">
        shopMarker(<%= s.latLng %>); //This would be a comma separated string containing         latitude and longitude
      </script>
      <li><%= link_to s.shop_name ,"#" %></li>
    <% end %>
  </ol>

当控制器响应JS时,以下是调用partial的jquery:

$("#shop_results").html("<%= escape_javascript(render("shop_results")) %>");

这是我在标题中调用的函数:

  function shopMarker(latLng){
      var marker = new google.maps.Marker({
        map: map,
        position:latLng
      });
      map.setCenter(latLng);

  }

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您是否可以发布您的控制器响应以及您用于首先呈现商店结果的链接/表单?

您的控制器应如下所示:

respond_to do |format| 
  format.js
end

您的回复应该被称为action_name_here.js.erb

最后,默认情况下,在XHR请求中,您对控制器的初始调用应该使用JS响应,但是您可以通过查看日志中的... responding with JS“格式来确认吗?