Bootstrap 模态数据关闭不起作用

新手上路,请多包涵

因此, data-dismiss="modal" 不适用于在我的 HTML 中添加的按钮,但适用于通过 JS 插入按钮 HTML 添加到模态的按钮。这让我觉得我添加脚本标签的位置/顺序有问题。

我的脚本标签按以下顺序排列:

 <script src="/Scripts/jquery-2.1.1.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/respond.js"></script>
<script src="/Scripts/Shared/site.js"></script>

我试着把它们放在 <head> 中。我将它们移到了 </body> 之前的最后一件事。我将它们移动到模态 html 之前和之后。

更新

这是我的代码的简化版本:

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Title</title>
    <link href="/Content/bootstrap.css" rel="stylesheet"/>
    <link href="/Content/font-awesome.css" rel="stylesheet"/>
    <link href="/Content/site-bootstrap.css" rel="stylesheet"/>
    <link href="/Content/site.css" rel="stylesheet"/>

    <script src="/Scripts/modernizr-2.8.3.js"></script>
</head>
<body>
    <div id="Popup" class="modal fade">
        <div class="modal-dialog">
            <div class="modal-content">
                <div id="PopupHeader">
                    <button type="button" id="PopupX" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                    <h4 id="PopupTitle" class="modal-title floatLeft"></h4>
                    <div class="clear"></div>
                </div>
                <div class="modal-body bgColorWhite">
                    <div id="PopupContent">Test</div>
                </div>
                <div id="PopupButtons" class="modal-footer bgColorWhite">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>

    <script src="/Scripts/jquery-2.1.1.js"></script>
    <script src="/Scripts/bootstrap.js"></script>
    <script src="/Scripts/respond.js"></script>
    <script src="/Scripts/Shared/site.js"></script>
</body>
</html>

另一个注意事项:

如果我通过 JS 添加“关闭”按钮(又名 X),它也可以正常工作。它已经在导致问题的模态中。

有什么建议么?

原文由 ScubaSteve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 648
1 个回答

我能够弄清楚我的问题。就是在我自己的 JS 文件中,我想在每个按钮点击事件中添加 event.stopPropagation();因为这是一个方法,我不希望每次调用时都将它多次添加到同一个按钮,所以我会删除以前的点击事件,也就是删除 Bootstrap 的关闭点击事件。

因此,如果您遇到同样的问题并且您已正确添加了所有 Bootstrap 的 JS,请检查您自己的代码以确保您没有覆盖/删除事件。

更新

澄清一下,event.stopPropagation() 会阻止 data-dismiss 工作。

原文由 ScubaSteve 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题