2013-04-20 1 views
8

Я использую таблицу данных jquery 1.9.4 и jquery 1.9.1, и я пытаюсь выполнить такой вызов ajax, как это при событии click.таблица данных jquery не работает со второй страницы

$(".icon-trash").on('click',function() { 
       // alert($(this).attr('id')); 
       $.post('/WorkOrderRequest/DeleteWOR', 
         { id: $(this).attr('id') }, 

         function (returndata) 
         { 

          if (returndata.ok) 
          { 
           window.alert(' deleted!'); 
           $("#emp" + idemployee).hide('slow'); 
          } 
          else { 
           window.alert(' error : ' + returndata.message); 
          } 

        }); 

      }); 

HTML часть:

@foreach (var item in Model) 
        { 

         <tr> 
          <td> 
           @Html.DisplayFor(modelItem => item.ProjectCode) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.WO_Date) 
          </td> 


          <td> 
          <a id='@(item.WO_ID)' class="icon-edit" /> 
           |        
          <a id='@(item.WO_ID)' class="icon-trash" /> 
          </td> 
         </tr> 
        } 

Он работает отлично на первой странице, но со второй страницы, его не показывает какого-либо результата. Пожалуйста, помогите

+0

что означает 'вторая страница'? Использование пейджинга в таблице? – charlietfl

+0

да я использую разбиение на страницы в моем datatable –

ответ

22

Способ разбивки на страницы, строки, которые не нужны текущей странице, удаляются из DOM. Поэтому любые обработчики событий, которые вы связываете непосредственно с этими элементами, теряются при удалении html.

Для привязки обработчика к активу на постоянной странице вам необходимо использовать синтаксис делегирования on(). Это может быть родительской таблицы или любой другой родитель до дерева, в том числе document

$('#TableID').on('click','.icon-trash',function() {... 

API Reference: http://api.jquery.com/on/

+1

WoooooW !! Теперь он работает отлично. Большое спасибо. вы g8. –

+0

Отличная помощь !!!! спасибо – user1882705

+0

Это лучший ответ на эту проблему. – Marcel

5

Если вы просто разместить код события щелчка выше datatable кода в js, он будет работать нормально.

В качестве примера.

$(".icon-trash").on('click',function() {}); 

$("#TableID").datatable(); 
+0

Хороший ответ! Заказ действительно имеет значение, спасибо тонну –

+0

Это не работает, когда вы меняете заказ. –

1

У меня такое же проблема, и я решил ее двигаться вниз ниже код строки на последнюю

$('#yourTable').dataTable();

Надеется, что это поможет кому-то.

Смежные вопросы