javascript - 我怎样才能使这种模式持久化?

标签 javascript css modal-dialog bootstrap-modal

我正在寻找一种方法,让这个模态一旦出现就持久存在。如此处所示,用户只需在 div 外部单击即可将其关闭。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Activate Modal with JavaScript</h2>
  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

<script>
$(document).ready(function(){
  $(window).load(function(){
    $('#myModal').modal('show');
  });
});
</script>

</body>
</html>

有没有办法阻止这个模态,即使在它外面点击鼠标它仍然存在?

最佳答案

为了“保持模态”(又名防止隐藏) Hook 隐藏事件并返回 false 以防止隐藏。

$("#myModal").on('hide.bs.modal', function () {  
  return false
});

这是一个完整的代码示例。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Persistent Modal</h2>
  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
    
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title">My Persistent Modal</h4>
        </div>
        <div class="modal-body">
          <p>I'm here for good. Can't hide me.</p>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

<script>
$(document).ready(function(){
  $(window).load(function(){
    $('#myModal').modal('show');
  });
  
  $("#myModal").on('hide.bs.modal', function () {  
    return false
  });
});
</script>

</body>
</html>

编辑:要隐藏模式,请在调用hide() 之前重新定义对隐藏事件的响应。以下函数执行此操作。您可以在适当的时候执行该功能(例如,在单击按钮时)。

function hideMyModal () {
  $("#myModal").on('hide.bs.modal', function () { });
  $("#myModal").hide()
}

关于javascript - 我怎样才能使这种模式持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35067259/

相关文章:

jquery - 无法提交在 Jquery 模型中加载的页面

javascript - LeanModal.js - X 单击时关闭模态框

javascript - 如何根据属性(例如类)从同名组中选择一个 Span

javascript - 使用 javascript 创建一个元素

html - 使用 css 重置元素在 Chrome 和 Firefox 中的不同位置

jquery - 如何使 Bootstrap 警告框出现在按钮下方

javascript - 粘性表不适用于引导模式中的表

javascript - jQuery Accordion/Toggle Panel - 仅关闭/打开特定类

javascript - 滚动时 JQuery 动画滞后

html - 内容位于 div 的中间