0

我一直無法載入我的網頁有一個隱藏的圖,然後我就可以查看一下:toggle_map_button顯示/隱藏地圖,開始與一個隱藏的地圖(顯示:無)

在我看來一個Show /隱藏按鈕和地圖:

<%= link_to_remote "Hide Map", :url =>{:action => :toggle_map}, :method => :get, :loading => visual_effect(:toggle_slide, "marketplace_map", :duration => 1, :queue => 'front'), :html => {:id => "toggle_map_button", :class => "toggle_map_button"} %> 

<%= gmaps(:map_options => {:detect_location => true, :center_on_user => true, :zoom => 6, :id => "marketplace_map" }, :markers => { "data" => @json }) %>  

在我的CSS文件:

#maketplace_map 
{ 
    width: 100%; 
    height: 400px; 
    display: none; <= this doesn't get to be set (when I check in HTML code with Bugzilla) 
} 

在行動時我RJS文件:toggle_map:

page << "document.getElementById('toggle_map_button').innerHTML =(document.getElementById('toggle_map_button').innerHTML == 'Show Map' ? 'Hide Map' : 'Show Map')" 

page.flash_msg(:notice_box, flash[:notice]) if flash[:notice] 
page.flash_msg(:error_box, flash[:error]) if flash[:error] 

flash.discard 

當顯示地圖的頁面開始時,整個事物都很完美。切換動作設置顯示:無;正確...

問題出現在以隱藏地圖開始並能夠點擊並將其向下滑動時。

任何想法?

乾杯,

喬爾在生成的HTML

回答

3

看有點接近,我敢打賭,它看起來像:

<div class="map_container"> 
    <div id="marketplace_map" class="gmaps4rails_map"></div> 
</div> 

所以足夠的CSS杆是map_container類。把display:none放在上面。


因爲visual_effect似乎需要一個id,有兩個選項:

  • 覆蓋的gmaps4rails部分

  • 包裹gmaps助手在一個div:<div id="foo"> <%= gmaps(bar) %> </div>


我有另一個解決方案給你,只是測試。

你說得對,隱藏可見的地圖很小。

所以加一個選項,你的助手:<%= gmaps(whatever, :last_map => false)%>

這不會創建地圖,只加載它的對象。

然後添加一些JavaScript(我使用jQuery但你的想法):

<script> 
var createMap = true; 
$(function(){ 
    $("#click_me").click(function(){ 
    if (counter == true) 
    { 
    Gmaps.loadMaps(); //this will create the map 
    counter = false; 
    } 
    $(".map_container").toggle(); // this hides and shows 
    }); 
}); 
</script> 
+0

它是indee d!和顯示:沒有確實隱藏div(我注意到了),但是然後AJAX特殊效果需要傳遞你需要切換的div的id ...不是類名...這就是我一直試圖得到的我的頭在附近。我只是不管理。因此,我嘗試與marketplace_map id一起工作......但是然後顯示:none沒有設置。除非有辦法將類名傳遞給視覺效果(?)hm – zabumba

+1

您可以將類和id傳遞給您想要的任何效果(至少使用jQuery,但原型不應該如此) – apneadiving

+0

oh ok!謝謝我會嘗試。順便說一句,謝謝你的寶石! – zabumba

0

解決它THX到@apneadiving建議

補充選項:

:complete => 'Gmaps.loadMaps();' to visual_effect 

在查看:

<%= link_to_remote "Show Map", 
    :url =>{:action => :toggle_map}, 
    :method => :get, 
    :loading => visual_effect(:toggle_slide, "map", :duration => 1, :queue => 'front'), 
    :complete => 'Gmaps.loadMaps();', 
    :html => {:id => "toggle_map_button", :class => "toggle_map_button"} %> 

<div id="map" style="display:none;" > 
    <%= gmaps(:map_options => {:detect_location => true, :center_on_user => true, :zoom => 6, :id => "marketplace_map", :last_map => false }, :markers => { "data" => @json }) %>   
</div>