Rails页面加载模态背景两次?

时间:2013-05-25 16:37:30

标签: javascript css ruby-on-rails-3 twitter-bootstrap modal-dialog

当我关闭模态(在模态外部点击)时,网页仍然是黑暗的,我必须再次点击页面上的某个位置才能恢复正常。谁知道问题可能是什么?

_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;
    }
}

2 个答案:

答案 0 :(得分:3)

在执行ajax请求之前隐藏模态。我有同样的问题,解决了它。对我而言,更多的是更换包含实际模态窗口的容器的问题。

如果这不起作用,您可以通过执行以下操作来强制它消失:

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

答案 1 :(得分:0)

经过几个小时的谷歌阅读和阅读,我找到了解决方案。

我首先找到this,引导我this,引导我this。 (很有用,因为它提供了替代解决方案和解释)。

简而言之:

1)首先我将此config.serve_static_assets = false添加到我的config/environments/development.rb文件中。

2)然后我在终端中运行rake assets:clean命令。

3)最后我在浏览器中删除了缓存。

它起作用 - 以及它起作用的原因,是上面链接中写的一个长解释;)