Bootstrap Модал не работает в DataTable со второй страницы - PullRequest
0 голосов
/ 18 января 2020

У меня есть таблица и используется с таблицей данных. В таблице я использовал bootstrap модал. Модал прекрасно работает на 1-й странице таблицы, но после 1-й страницы модальный не работает.

Код моей таблицы:

 <table id="myTable" class="table table-striped">
  <tr>
   <td>
     <a data-id="<?php echo $row['id']; ?>" class='userinfo'><i class="mdi mdi-account-edit"></i></a>
   </td>
  </tr>
 </table>

Мой плагин вызова DataTable

$(".userinfo").on('click',function () {});
    $(document).ready(function (){
        var table = $('#myTable').dataTable({
         dom: 'l<"toolbar">frtip',
            initComplete: function(){
             $("div.toolbar").html('<button type="button" data-toggle="modal" data-target="#add_staff"><span>Add New Staff</span><i style="margin-left: 2px;" class="fas fa-user-plus"></i></button>');           
 }       
 });   
}); 

Мой скрипт модального вызова

$(document).ready(function(){
 $('.userinfo').on('click',function(){
  var userid = $(this).data('id');
    $.ajax({
      url: 'inc/edit_staff_modal.php',
      type: 'post',
      data: {userid: userid},
        success: function(response){ 
         $('.mod').html(response);
            $('#empModal').modal('show'); 
        }
    });
 });
});

А вот модальное значение bootstrap

   <div class="modal fade" id="empModal" role="dialog">
    <div class="modal-dialog modal-xl">
     <div class="modal-content">
      <div class="modal-body mod"></div>
     </div>
    </div>
   </div>

В edit_staff_modal. php Я просто вызываю usedrid и извлекаю данные. Этот код очень хорошо работает в первых 10 строках данных. Но когда я go на 2-й странице и более этот модал не работает, я искал несколько блогов и стеков и следил за ними, но не решил. Хо я могу решить это.

Ответы [ 2 ]

2 голосов
/ 18 января 2020

Пожалуйста, обновите код ниже, чтобы связать ваше главное событие клика, используя jquery body селектор

$(document).ready(function(){    
 $("body").on("click", ".userinfo", function(event){ 
  var userid = $(this).data('id');
    $.ajax({
      url: 'inc/edit_staff_modal.php',
      type: 'post',
      data: {userid: userid},
        success: function(response){ 
         $('.mod').html(response);
            $('#empModal').modal('show'); 
        }
    });
 });
});

Надеюсь, что это работает:)

1 голос
/ 18 января 2020

Я просто положил этот код

$(document).on('click', '.userinfo', function(e) {

вместо этого кода.

$('.userinfo').on('click',function(){

И у меня все отлично работает как на 2-х страницах, так и на других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...