引导模态弹出窗口不可点击

问题描述 投票:0回答:7

使用 Bootstrap 添加模式弹出窗口。单击触发按钮后,模式会变暗并且无法单击。知道是什么原因造成的或去哪里查找吗?

enter image description here

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>


<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

application.js

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require miracle/jquery.noconflict
//= require miracle/modernizr.2.8.3.min
//= require miracle/jquery-migrate-1.2.1.min
//= require miracle/jquery-ui.1.11.2.min
//= require bootstrap
//= require turbolinks
//= require magnific-popup/jquery.magnific-popup.min
//= require miracle/jquery.stellar.min
//= require miracle/waypoints.min
//= require owl-carousel/owl.carousel.min
//= require jquery.sky.carousel/jquery.sky.carousel-1.0.2
//= require miracle/jquery.plugins
//= require miracle/main
//= require_tree .
javascript twitter-bootstrap twitter-bootstrap-3
7个回答
45
投票

当我像这样在模态中添加 data-backdrop="false" 时,我解决了同样的问题:

<div class="modal fade" id="userGoing" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-backdrop="false">

7
投票

有时,更改 z-index 可能会弄乱 Bootstrap,因此正如他们在 Bootstrap 文档中所说,尝试将

<!-- Modal -->
块放在页面顶部。 如果它是一个可以从应用程序中的许多地方访问的模式,您可以将其放置在部分中并在您的
app/views/layouts/application.html.erb
之上调用它,如下所示(抱歉,这是一个很薄的模板,请告诉我您是否需要 erb 翻译):

doctype html
html
  head
    == render 'layouts/meta'

    = stylesheet_link_tag …
    = javascript_include_tag …
    = csrf_meta_tags

  body

    == render 'path/to/your/modal'

    .container
      == yield

    == render 'layouts/footer'

否则,您可以尝试在

<%== yield :modal %>
中执行特殊的
application.html.erb
并从其他地方用 `<%- content_for :modal %> 调用它。不确定这里的 erb 语法。 此处解释:使用 Content For 方法


4
投票

在同一页面添加以下代码。

#myModal{
 z-index: 9999
}

2
投票

.modal-dialog
pointer-events
设置为
none

我覆盖了该属性并设置了

pointer-events: unset;

所以:

.modal-dialog {
  pointer-events: unset !important;
}

这对我有用


1
投票

过了很长一段时间,我就得到了这个简单的错误

.modal-backdrop {
    z-index: -1;
}

谢谢。


0
投票

当我从另一个模态调用一个模态时,我遇到了同样的问题(但当我只调用第一个模态时则没有)。

所以,这可能对你没有帮助,但它可以为其他人节省很多时间:我对淡入淡出效果有不同的定义,并且有与 display: inline-block 的界限。我删除了它,问题就消失了。


失败的 CSS 定义:

.fade { ... display: inline-block; ... }



0
投票

我使用 Razor 页面
  • 模态(div)被渲染为主体的最后一个元素
  • 在 _layout.cshtml 中,所有默认脚本都是在 @RenderBody 调用之后渲染的。因此,在渲染的 html 中,所有脚本标签都在那一刻渲染在正文的末尾)
  • 在渲染的 html 中,模态 (div) 在脚本之后渲染,这导致了问题。
  • 我是如何解决这个问题的:

我在 @RenderBody 调用 (_layout.cshtml) 之后执行了 @RenderSection("Modal") 调用。
  • 这个 @RenderSection("Modal") 调用然后在页面上的“@section Modal{...}”内渲染 html。
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.