簡體   English   中英

引導模式顯示兩次

[英]bootstrap modal displays twice

我有一個帶按鈕的用戶表,該按鈕顯示包含有關用戶信息的模式。

因此,我將有10行,每行都有其自己的按鈕,當我第一次按下按鈕時,它將顯示一個包含用戶信息的模式(我們將其稱為模式A)並正常工作。

當我單擊另一個用戶的按鈕時,它將顯示模式A,然后在頂部,當我關閉該模式時,它將顯示正確的模式(模式B),模式A不再顯示在屏幕上,但背景仍然可見。

我正在使用帶有引導程序3的laravel 5.5,這是模態加載的代碼。

Java腳本

$(".btn").click(function(){
    var button = $(this)
    var employee_id = button.data('id')
    var url = "/something/else/" + employee_id;
    $('.modal-container').load(url,function(result){
         $('#display').modal({show:true});
    });
});

的HTML

<a class="btn btn-primary" data-toggle="modal" data-id="{{ $simething->id }}" href="#display" id="modal_link">Show Modal</a>

這是完整的代碼

<table id="table" class="table" cellspacing="0" width="100%" role="grid">
     <thead>
         <th>ID</th>
         <th>First Name</th>
         <th>Last Name</th>
         <th>Events</th>
     </thead>
     <tbody>
     @foreach ($empleados as $empleado)
        <tr>
            <td>{{ $simething->id }}</td>
            <td>{{ $simething->fname }}</td>
            <td>{{ $simething->lname }}</td>
            <td>
                <a class="btn btn-primary" data-toggle="modal" data-id="{{ $simething->id }}" href="#display" id="modal_link">Show Modal</a>
                <div class="modal-container"></div>
            </td>
        </tr>
     @endforeach
 </tbody>

<script>
            $(document).ready(function(){

                $(".btn").on('click', function(e){
                    var button = $(this); // Button that triggered the modal
                    var employee_id = button.data('id'); // Extract info from data-* attributes
                    var url = "/somethin/else/" + employee_id;
                    $('.modal-container').load(url,function(){
                        $('#display').modal('show');
                    });
                });
            });
        </script>

您每次都啟動該模式兩次,幾次單擊之后可能會堆積起來並引起您所看到的問題。 嘗試將您的html更改為不自動啟動模式,如下所示:

<a class="btn btn-primary modal-btn" data-id="{{ $simething->id }}" href="#/" id="modal_link">Show Modal</a>

另外,您不應使用“ .btn”作為選擇按鈕的方式,因為頁面上的許多按鈕可能具有該boostrap類。 我會給它一個唯一的類,您只想使用此模式作為目標,如果每個單擊事件僅一個按鈕,則為其指定一個ID。 將您的JavaScript更改為此:

$(".modal-btn").click(function(){
    var button = $(this)
    var employee_id = button.data('id')
    var url = "/something/else/" + employee_id;
    $('.modal-container').load(url,function(result){
         $('#display').modal({show:true});
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM