2013-04-20 53 views
8

我正在使用jquery數據表1.9.4和jquery 1.9.1,我試圖在click事件上執行像這樣的ajax調用。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 2013-04-20 11:33:05

+0

是的,我在我的數據表中使用分頁 – 2013-04-20 11:34:24

回答

22

分頁工作方式,當前頁面不需要的行從DOM中刪除。因此,直接綁定到這些元素的任何事件處理程序在刪除html時都會丟失。

您需要使用委託語法on()將處理程序綁定到永久頁面中的資產。這可能是父表或任何其他家長了樹,包括document

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

API參考:http://api.jquery.com/on/

+1

WoooooW!它的工作現在很好。非常感謝。你是g8。 – 2013-04-20 11:54:18

+0

很好的幫助!謝謝 – user1882705 2014-01-16 21:10:30

+0

這是解決這個問題的最佳答案。 – Marcel 2015-05-25 17:07:15

5

如果你只是把你的點擊事件代碼上面datatable代碼js,它會正常工作。

作爲示例。

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

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

很好的答案!訂單的確很重要,謝謝大家 – 2017-08-17 16:49:23

+0

當您更改訂單時,這不起作用。 – 2018-03-04 02:57:00

1

我有同樣的問題,我在上次

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

解決它通過向下移動線的下面的代碼希望它會幫助別人。