简体   繁体   English

模态隐藏在 Bootstrap 4 中不起作用

[英]Modal Hide Doesn't Work In Bootstrap 4

I have problem with hiding modal in bootstrap 4. In my tmp function I have to close modal after that I need use method update_table(url)我在 bootstrap 4 中隐藏模态有问题。在我的 tmp function 之后我必须关闭模态我需要使用方法 update_table(url)

HTML and JS HTML 和 JS

<div class="modal" id="Modal" tabindex="-1" role="dialog"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
        integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
        crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
        integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
        crossorigin="anonymous"></script>


<script type="text/javascript">
    function abrir_modal(url) {
        $('#Modal').load(url, function () {
            $(this).modal('show');
        });
        return false;
    }

    function tmp(url) {

        $('#Modal').on('shown.bs.modal', function (e) {
            $("#Modal").modal('hide');
        })
            update_table(url);


    }

    function update_table(url) {
        $.ajax({
            type: "GET",
            url: url
        })
            .done(function () {
                refresh_table();
            });
    }

    function refresh_table() {
        $.ajax({
            type: "GET",
            url: "{% url 'Project:Task_Schedule_TableView' %}"
        })
            .done(function (response) {
                $("#_appendHere").load("{% url 'Project:Task_Schedule_TableView' %}" + "#_appendHere");
            });
    };
function hide_modal() {
    console.log($('#Modal').modal('name'))
    $('#Modal').modal('hide');
    console.log(33)
    return false;
}
</script>

I don't know what is wrong but when I try use the hide_modal function instead of the tmp function, modal is hidden.我不知道出了什么问题,但是当我尝试使用hide_modal function 而不是 tmp function 时,模态被隐藏了。

This is simple code for Bootstrap 4 Modal Pop Up which hide the pop up. 这是Bootstrap 4 Modal Pop Up的简单代码,可以隐藏弹出窗口。 You can check this.. 你可以查看..

 $('#Modal').modal('show'); function tmp(url) { $("#Modal").modal('hide'); } 
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script> <div class="modal" id="Modal"> <div class="modal-dialog"> <div class="modal-content"> <!-- Modal Header --> <div class="modal-header"> <h4 class="modal-title">Modal Heading</h4> <button type="button" class="close" data-dismiss="modal">&times;</button> </div> <!-- Modal body --> <div class="modal-body"> Modal body.. </div> <!-- Modal footer --> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> </div> </div> </div> </div> 

When the pop up is shown call this function from browser console.. tmp('http://test/test'); 当显示弹出窗口时,从浏览器控制台调用此函数.. tmp('http://test/test'); it will hide the pop up. 它会隐藏弹出窗口。 It same as Bootstrap 3 它与Bootstrap 3相同

Step 1. Remove these lines from your code第 1 步。从您的代码中删除这些行

 $('#Modal').on('shown.bs.modal', function (e) {
        $("#Modal").modal('hide');
    })

Step 2. put the hide_modal function top of all code.第 2 步。hide_modal function 放在所有代码的顶部。 Then it will be appeared properly.然后它就会正常出现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM