我在表中有数据列表,并且正在使用dataTable插件进行分页。
但是,我的最后一列是链接。当我转到第二页时,无法单击链接,但是该链接仅在表格的第一页上打开。
当我没有数据表时,所有链接的工作都没有,但是那时候我添加了它,却没有工作...
我的代码:
<table id="PartsResultListGrid" class="table table-striped table-bordered">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.PartsRequestOrderNum)
</th>
<th>
@Html.DisplayNameFor(model => model.Call_Num)
</th>
<th>
@Html.DisplayNameFor(model => model.DetailView)
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PartsRequestOrderNum)
</td>
<td>
@Html.DisplayFor(modelItem => item.Call_Num)
</td>
<td>
<div data-callno='@item.PartsRequestOrderNum' data-url="@Url.Action("GetPartsInfo", "Parts")">
<div class="PartsViewSubmit toolbarIcon">
<div class="toolbarIconText">View</div>
</div>
</div>
</td>
</tr>
}
</tbody>
</table>
Javascript:
<script type="text/javascript">
$(document).ready(function () {
$('#PartsResultListGrid').dataTable({
"bSort": false,
});
});
</script>
知道为什么会这样吗?
我里面的ajax链接打开了链接:
$('.PartsViewSubmit').click(function () {
$.ajax({
type: "GET",
url: $(this).parent().data("url"),
data: { PartsRequestOrderNum: $(this).parent().data("callno") },
success: function (data) {
$("#PartsDetail").html(data);
},
});
});
最佳答案
您需要使用delegated event:
委派事件具有可以处理以下事件的优势:
后继元素添加到文档中的子元素。通过
选择一个保证在当前时间存在的元素
附加了委托事件处理程序,您可以使用委托事件来
避免需要频繁附加和删除事件处理程序。
因此,在您的情况下,我改为这样做:
$(document.body).on('click', '.PartsViewSubmit', function() {
$.ajax({
...
});
});