【问题标题】:Bootstrap modal not displayed over another modal引导模式未显示在另一个模式上
【发布时间】:2022-11-15 15:03:40
【问题描述】:

当单击“单击我这里”按钮时,我有一个正在创建的模态,此外,模态需要显示一个 toast 模态来传达一些感谢信息。

单击保存时,谢谢模式关闭现有模式。预期的是,当单击保存时,保存模式不应该被卸载,感谢模式应该保持加载到保存模式的顶部。

单击保存时,我收到错误消息

Cannot read properties of undefined (reading 'backdrop')

<!doctype html>
<html lang="en">

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3"
    crossorigin="anonymous"></script>
</head>

<body>

  <button id="clickme">Click me here</button>
  
<ul class="list-group task-point">
</ul>

  <script>
  
        function showToast(m,title="Error") {
            $("#modal")
                .html(`<div class="modal fade" id="messagemodal" tabindex="-1" role="dialog" aria-labelledby="messagemodal" aria-hidden="true">
<div class="modal-dialog modal-sm modal-dialog-centered" role="document">
                <div class="modal-content">
                  <div class="p-2 modal-header">
                    <h5 class="ms-2 modal-title">${title}</h5>
            <button type="button" class="me-1 btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                  </div>
                  <div class="text-start modal-body">
                    ${m}<br/><br/>
                  </div>
                </div>
              </div>
            </div>`);
            var modal = new bootstrap.Modal(document.getElementById('messagemodal'), {
                keyboard: false
            });
            modal.show();
        }
        
        
    $("#clickme").click(function (event) {
    
    var code = $(".dropdown-menu").length+1
    
      $(".task-point").append(`
            <li class="list-group-item">
                <img src="https://img.icons8.com/color/48/000000/networking-manager.png" class="float-start" />            

                <div class="btn-group float-end">
                    <button type="button" class="btn dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false"> Action </button>
                    <ul class="dropdown-menu dropdown-menu-lg-end">
                        <li><a data-bs-toggle="modal" href="#exampleModalToggle-${code}" role="button" class="dropdown-item" href="#">Edit ${code}</a></li>
                        <li><a class="dropdown-item" href="#">Delete ${code}</a></li>
                        <li><a class="dropdown-item" href="#">Run ${code}</a></li>
                    </ul>
                </div>
                
    <div class="ms-5">This is ${code} item<br/>
    <small class="text-secondary">This is a ${code} item description</small>
    <div>
                <div class="modal fade" id="exampleModalToggle-${code}" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
                    <div class="modal-dialog modal-fullscreen">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h1 class="modal-title fs-5" id="exampleModalToggleLabel">Create a file</h1>
                                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                            </div>
                            <div class="modal-body"> What is Lorem Ipsum? </div>
                            <div class="modal-footer">
                                <button class="btn btn-primary" data-bs-target="#exampleModalToggle2" data-bs-toggle="modal" onclick="showToast('Thanks for saving');">Save</button>
                            </div>
                        </div>
                    </div>
                </div>
            </li>
        `);
        $(`#exampleModalToggle-${$(".dropdown-menu").length}`).modal("show")
    })
    

  </script>

</body>

【问题讨论】:

    标签: javascript html jquery bootstrap-5


    【解决方案1】:

    请尝试以下代码并将其替换为您的代码:

        <!doctype html>
        <html lang="en">
        
        <head>
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
          <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet"
            integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
          <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3"
            crossorigin="anonymous"></script>
        </head>
        
        <body>
        
          <button id="clickme">Click me here</button>
          
        <ul class="list-group task-point">
        </ul>
        
            <div id="modal">
            </div>  
          <script>
          
                function showToast(m,title="Error") {
                    $("#modal")
                        .html(`<div class="modal fade" id="messagemodal" tabindex="-1" role="dialog" aria-labelledby="messagemodal" aria-hidden="true">
        <div class="modal-dialog modal-sm modal-dialog-centered" role="document">
                        <div class="modal-content">
                          <div class="p-2 modal-header">
                            <h5 class="ms-2 modal-title">${title}</h5>
                    <button type="button" class="me-1 btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                          </div>
                          <div class="text-start modal-body">
                            ${m}<br/><br/>
                          </div>
                        </div>
                      </div>
                    </div>`);
                   
                    
                    $("#messagemodal").modal('show');
                    
                    $(document).on("click", ".me-1", function() { $("#messagemodal").modal('hide');  $("#modal").empty();});
                }
                
                
                
            $("#clickme").click(function (event) {
            
            var code = $(".dropdown-menu").length+1
            
              $(".task-point").append(`
                    <li class="list-group-item">
                        <img src="https://img.icons8.com/color/48/000000/networking-manager.png" class="float-start" />            
        
                        <div class="btn-group float-end">
                            <button type="button" class="btn dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false"> Action </button>
                            <ul class="dropdown-menu dropdown-menu-lg-end">
                                <li><a data-bs-toggle="modal" href="#exampleModalToggle-${code}" role="button" class="dropdown-item" href="#">Edit ${code}</a></li>
                                <li><a class="dropdown-item" href="#">Delete ${code}</a></li>
                                <li><a class="dropdown-item" href="#">Run ${code}</a></li>
                            </ul>
                        </div>
                        
            <div class="ms-5">This is ${code} item<br/>
            <small class="text-secondary">This is a ${code} item description</small>
            <div>
                        <div class="modal fade" id="exampleModalToggle-${code}" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1" da>
                            <div class="modal-dialog modal-fullscreen">
                                <div class="modal-content">
                                    <div class="modal-header">
                                        <h1 class="modal-title fs-5" id="exampleModalToggleLabel">Create a file</h1>
                                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                                    </div>
                                    <div class="modal-body"> What is Lorem Ipsum? </div>
                                    <div class="modal-footer">
                                        <button class="btn btn-primary" onclick="showToast('Thanks for saving');">Save</button>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </li>
                `);
                $(`#exampleModalToggle-${$(".dropdown-menu").length}`).modal("show");
            })
            
        
          </script>
        
        </body>

    谢谢

    【讨论】:

    • 如果您仍然存在问题,请告诉我,如果它对您有用,请执行标记的答案。
    • 谢谢你,但是当显示谢谢模式时,褪色的背景消失了。你能帮我知道如何显示这个吗?即使将 z-index 设置为模态也对我没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多