问答详情
源自:8-12 模态弹出框--JavaScript触发时的参数设置(二)

为什么代码展示的效果,并不是打开前和打开后?

show.bs.modal  和 shown.bs.modal 两个事件响应都在模态弹出框打开之前,关闭的两个事件也是如此,请问有朋友知道是因为什么导致的吗?

提问者:吃天狗的月亮 2017-10-10 18:17

个回答

  • coder_monkey
    2018-10-30 17:18:50

    给你的modal加一个 fade 就好了


    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>JavaScript触发时的参数设置(二)</title>
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    </head>
    <body>
    <button class="btn btn-primary" type="button">点击我</button>
    <div class="modal fade" id="mymodal">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                    <h4 class="modal-title">模态弹出窗标题</h4>
                </div>
                <div class="modal-body">
                    <p>模态弹出窗主体内容</p>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                    <button type="button" class="btn btn-primary">保存</button>
                </div>
            </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->
    
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <script>
        $(function(){
            $(".btn").click(function(){
                $("#mymodal").modal("toggle");
            });
            $('#mymodal').on('show.bs.modal', function (e) {
                alert("在show方法调用时立即触发(尚未显示之前);如果单击了一个元素,那么该元素将作为事件的relatedTarget属性");
            });
            $('#mymodal').on('shown.bs.modal', function (e) {
                alert("该事件在模态弹出窗完全显示给用户之后(并且等CSS动画完成之后)触发;如果单击了一个元素,那么该元素将作为事件的relatedTarget事件");
            });
            $('#mymodal').on('hide.bs.modal', function (e) {
                alert("在hide方法调用时(但还未关闭隐藏)立即触发");
            });
            $('#mymodal').on('hidden.bs.modal', function (e) {
                alert("该事件在模态弹出窗完全隐藏之后(并且CSS动画漂完成之后)触发");
            });
        });
    </script>
    </body>
    </html>


  • corner_sun
    2017-10-23 21:39:06

    谷歌浏览器的问题,你用其它浏览器试一下。