0

當我關閉模式(在模式外單擊)時,網頁仍然很暗,我必須再次點擊頁面上的某個位置才能再次正常顯示。任何人都知道問題可能是什麼?Rails頁面加載模態背景兩次?

_post_modal.html.erb

<div id="<%= p.id %>" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-header"> 
     <p><h3 id="myModalLabel"><%= p.title %></h3></p> 
    </div> 
    <div class="modal-body"> 
     <%= raw(p.link) %> 
    </div> 
</div> 

_single_post.html.erb

<% @posts.each do |p| %> 
    <%= render "post_modal" %> 
<% end %> 

list.html.erb

<div class="container"> 
    <%= render 'single_post' %> 
</div> 

application.html.erb

<body> 
    <%= link_to('Logout user', destroy_user_session_path, :method => :delete) %> 
    <%= link_to('Logout admin', destroy_admin_session_path, :method => :delete) %> 
    <%= yield %> 
</body> 

custom.css.scss

body{ 
     background-image:url('dark_leather.png'); 
     color: #333; 
     font-family: verdana, arial, helvetica, sans-serif; 
     line-height: 18px; 
} 

.container{ 
    vertical-align: center; 
} 

.modal{ 
    h3{ 
     font-family: 'Josefin Slab', serif; 
     font-size: 18pt; 
     font-weight: 400; 
     color: #34DDDD; 
    } 
} 
+0

於是我發現了(從「檢查元素」在Chrome),該頁面打開兩個'

' ,而不只是一個。這是我必須點擊兩次才能使黑色覆蓋層消失的原因。那麼我怎樣才能讓它開放一次(而不是兩次)呢? – allegutta

回答

0

後googleing和閱讀的時間,我找到了解決辦法。

我第一次發現this,這導致我this,這導致我this。 (因爲它提供了替代解決方案和解釋)。

簡而言之:

1)首先,我添加了這個:config.serve_static_assets = falseconfig/environments/development.rb文件。

2)然後我在終端運行rake assets:clean命令。

3)最後我在瀏覽器中刪除了緩存。

它的工作 - 爲什麼它的工作,是寫在上面的鏈接很長的解釋;)

2

隱藏在做AJAX請求之前的模式。我有同樣的問題,並解決了它。對我來說,更換包含實際模態窗口的容器是一個更大的問題。

如果不工作,你總是可以迫使它這樣做走開如下:

$('#your-modal-id').modal('hide'); 
$('body').removeClass('modal-open'); 
$('.modal-backdrop').remove(); 
+0

嗨矢量,感謝您的答案,但你是什麼意思與「隱藏模式之前做Ajax請求」?我怎樣才能做到這一點? – allegutta

+0

向量,你剛剛複製了這個答案...(http://stackoverflow.com/questions/11519660/twitter-bootstrap-modal-backdrop-doesnt-disappear) – allegutta

+0

這解決了我的問題。 – Vector