2

我想填充一個城市的列表,並在地圖上標記它們,使用AJAX我正在更新一個div元素與城市列表和每個城市元素,我試圖調用addmarker()函數應該在谷歌地圖上添加一個標記。 使用螢火蟲我可以看到一個帶有函數調用的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 > 

你必須留意,這是突兀的JavaScript和真難看,所以你可能要重新考慮這種做法。這個主題有很多文章。 Here's我找到了一個快速的。我會將整個結果對象傳遞給頁面頂部的一個javascript函數,該函數遍歷結果並添加標記。

相關問題