Bootstrap模态 - 单击"call to action"按钮时关闭模态

Tom*_*sen 42 javascript twitter-bootstrap

我的模态中有一个外部链接,我想在用户点击链接后隐藏模态.我怎么做?

这是我的代码:

<div class="modal hide fade" id="modalwindow">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h3>Title</h3>
  </div>
  <div class="modal-body">
    <p>You need to search on google for that.</p>
  </div>
  <div class="modal-footer">
    <a id="closemodal" href="https://www.google.com" class="btn btn-primary" target="_blank">Launch google.com</a>
  </div>
</div>

<script type="text/javascript">
    $('#closemodal').modal('hide');
</script>
Run Code Online (Sandbox Code Playgroud)

jsa*_*nen 91

您需要将模态隐藏调用绑定到click事件:

$('#closemodal').click(function() {
    $('#modalwindow').modal('hide');
});
Run Code Online (Sandbox Code Playgroud)

还要确保在文档加载完成后绑定click事件:

$(function() {
   // Place the above code inside this block
});
Run Code Online (Sandbox Code Playgroud)

  • `modal`附加到jQuery对象,所以你需要调用`$('.modal').modal()` (3认同)

Pra*_*man 13

删除您的脚本,并更改​​HTML:

<a id="closemodal" href="https://www.google.com" class="btn btn-primary close" data-dismiss="modal" target="_blank">Launch google.com</a>
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,目前这将无法正常工作,因为bootstrap中尚不存在此功能.在这里看问题.

  • 是的,这会关闭模态,但新的目标链接无法打开. (3认同)
  • 它不是太老了.首先答案是错误的,现在是错的.我贬低了,因为你的答案不起作用,但是那些从谷歌停下来的人可能会看到并尝试并浪费时间.正如我在其他评论中所述."使用data-dismiss ="modal"的模态中的链接不会去目的地." 转到链接以查看它是已知问题.https://github.com/twbs/bootstrap/issues/7192正确的anwser是接受的答案. (2认同)

Chr*_*mer 6

使用data-dismiss="modal". 在 Bootstrap 的版本中,我使用的是 v3.3.5,当 data-dismiss="modal"被添加到所需的按钮时,如下所示,它会精美地调用我的外部 Javascript (JQuery) 函数并神奇地关闭模态。它太甜了,我担心我必须在另一个函数中调用一些模态隐藏并将其链接到真正的工作函数

 <a href="#" id="btnReleaseAll" class="btn btn-primary btn-default btn-small margin-right pull-right" data-dismiss="modal">Yes</a>
Run Code Online (Sandbox Code Playgroud)

在一些外部脚本文件中,在我准备好的文档中,当然有一个用于单击该标识符 ID 的函数

 $("#divExamListHeader").on('click', '#btnReleaseAll', function () {
               // Do DatabaseMagic Here for a call a MVC ActionResult
Run Code Online (Sandbox Code Playgroud)