หน้าต่างป๊อปอัป Bootstrap 4 Modal ไม่สามารถปิดได้

ฉันทำโครงการเกี่ยวกับเกมจับคู่ หลังจากที่ไพ่ทั้งหมดตรงกันและจบเกมแล้ว โมดอลแสดงความยินดีก็จะปรากฏขึ้น แต่ฉันไม่รู้ว่าทำไมมันถึงไม่ปิดหลังจากคลิกปุ่มเล่นอีกครั้ง

นี่คือindex.htmlสำหรับหน้าต่างโมดอล

<!--Add Bootstrap Modal Alert Window-->
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal-label" aria-hidden="true">
    <div class="modal-dialog">
        <!--Modal Content-->
        <div class="modal-content">

            <!--Modal Header-->
            <div class="modal-header">
                <h4 class="modal-title" id="myModal-label">Congratulations!!!</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                  </button>
            </div>

            <!--Modal Body-->
            <div class="modal-body">
                <p id="myText"></p>
            </div>

            <!--Modal Footer-->
            <div class="modal-footer">
                <button type="button" data-dismiss="modal" class="btn btn-success btn-default" onclick="gameStart(), $rating.removeClass('fa-star-o').addClass('fa-star');">Play Again!</button>
            </div> <!--modal footer-->
          </div> <!--modal-content-->
    </div> <!--modal-dialog-->
</div> <!--modal-->  

และจาวาสคริปต์สำหรับ Modal:

function gameOver(moves, score) {
$('#myText').text(`Time: ${second} Seconds, Your Move: ${moves} Moves, Total 
Score: ${score}, Well done!!!`);
$('#myModal').toggle(); 
}

if (totalCard === match) {
        rating(moves);
        let score = rating(moves).score;
        setTimeout(function () {
            gameOver(moves, score);
        },800);
    }

นี่คือลิงค์สำหรับโปรเจ็กต์เกมจับคู่ของฉัน:

https://codepen.io/sofianayak55/pen/wEBvvJ


person S.Nayak    schedule 24.08.2018    source แหล่งที่มา
comment
ไม่ มันใช้งานไม่ได้   -  person S.Nayak    schedule 24.08.2018


คำตอบ (1)


คุณกำลังโหลดไลบรารี Bootstrap ก่อน jQuery...

 <!--Add jQuery-->
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
 <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js'></script>
 <script src="js/app.js"></script>

กลับลำดับของ 2 เหล่านั้น ;)

สิ่งนี้ทำให้เกิดข้อผิดพลาดด้านล่างใน คอนโซล:

Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ 'fn' ของไม่ได้กำหนด
ที่ util.js:68
ที่ util.js:10
ที่ bootstrap.min.js:6
ที่ bootstrap.min.js: 6

ฉันเล่นเกมเสร็จใน 15 กระบวนท่า 34 วินาที ;)


แก้ไข
บรรทัด #118 ใน JS เป็นปัญหา คุณใช้ $('#myModal').toggle() (เมื่อจบเกม เพื่อเปิด)

ฉันแทนที่ id ด้วย $('#myModal').modal("show"); data-dismiss ต้องการให้แสดงโมดอลโดยใช้เมธอด modal() .toggle() เป็นวิธี jQuery เพื่อแสดง/ซ่อนองค์ประกอบ ดังนั้นเนื่องจาก Bootstrap ไม่รู้ว่ามีการแสดงโมดอล dismiss จึงไม่ทำงาน

CodePen อัปเดตแล้ว

ฉันแสดงความคิดเห็นเกี่ยวกับแหล่งข้อมูลสองสามรายการที่อยู่ในเซิร์ฟเวอร์ของคุณ... แต่เป็น 404 ใน CodePen... ดังนั้นโปรดระวังหากคุณคัดลอก/วางจากแหล่งข้อมูลนั้น

person Louys Patrice Bessette    schedule 24.08.2018
comment
อืม... ฉันทดสอบแล้ว... การสลับลำดับของทั้งสอง lib นั้นดี... ลบข้อผิดพลาดที่เกิดขึ้น แต่ปัญหาของคุณยังคงอยู่ เดี๋ยว. - person Louys Patrice Bessette; 24.08.2018
comment
แต่ยังไม่ปิดหน้าต่างป๊อปอัป - person S.Nayak; 24.08.2018