jquery数据表无法从第二页开始工作

我正在使用jquery数据表1.9.4和jquery 1.9.1,我试图在click事件上执行这样的ajax调用。

$(".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) {   @Html.DisplayFor(modelItem => item.ProjectCode)   @Html.DisplayFor(modelItem => item.WO_Date)    |    } 

它在第一页上正常工作,但从第二页开始没有显示任何结果。 请帮忙

分页的工作方式,当前页面不需要的行将从DOM中删除。 因此,当删除html时,任何直接绑定到这些元素的事件处理程序都将丢失。

您需要使用on()委托语法将处理程序绑定到永久页面中的资产。 这可以是父表或树上的任何其他父项,包括document

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

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

如果您只是将您的点击事件代码放在js代码之上,它将正常工作。

例如。

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

我有同样的问题,我通过调用其他代码后移动下面的代码解决了它。

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

希望它会帮助某人。

这是一个老问题,但我遇到了同样的问题,并在js click事件解决后调用datatable(通过下面的脚本)。

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