如何从外面关闭非模态叠加对话框

时间:2015-11-20 01:41:45

标签: javascript jquery html css twitter-bootstrap

我希望能够使用外部按钮切换叠加对话框。问题是当叠加对话框打开时,它会阻止鼠标访问该按钮。可以在不使用其数据类的情况下模仿Bootstrap模态响应吗?是否有可能使用CSS,jQuery或javaScript来解决这种模态行为?这是代码:

<!DOCTYPE html>
<html>
<head>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
    .nonmodals {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 10000;
    }
</style>
</head>
<body onload="HideModals()">
<a type="button" onclick="ToggleReserve()" class="btn btn-primary">Toggle  Overlay</a>
<div id="reserveform" class="nonmodals" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times; </button>
        <h4 class="modal-title">The Header</h4>
    </div>
    <div class="modal-body">
     <div>
        <h3>Hello!</h3>
        <form class="form-horizontal" role="form">
            <div class="form-group">
                <div class="col-sm-offset-2">
                    <button type="submit" class="btn btn- primary">Submit</button>
                </div>
            </div> 
        </form>
    </div>  
    </div>
</div>
</div>
</div>
<script   src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"> </script>
<script src="js/bootstrap.min.js"></script>
<script>
    function ToggleReserve() {
        $("#reserveform").toggle(500);
    }                
    function HideModals() {
        $('.nonmodals').css('display', 'none');
    }    
  </script>  
</body>
</html>

1 个答案:

答案 0 :(得分:1)

不确定您为什么要这样做,但您可以使用的CSS是

pointer-events: none;

将其添加到&#34;保留表单&#34; DIV。任何鼠标点击都会通过div到达下面的内容。如果您需要点击一些不通过,则必须为这些元素重新设置指针事件样式。