我使用的是jquery datatables插件,它在第一页后无效,事件点击功能仅适用于第一页。
所以我发现了 https://datatables.net/faqs/
问。我的活动不适用于第二页
一个。将事件附加到由DataTables控制的表中的单元格时, 你需要小心它是如何完成的。因为DataTables删除了 来自DOM的节点,可能使用静态事件侦听器应用的事件 无法将自己绑定到表中的所有节点。要克服 这个,只需使用jQuery委托的事件监听器选项,如图所示 这个例子。此外,您可以使用我的Visual Event书签 帮助调试事件问题。
他们建议这样:
$('#example tbody').on('click', 'tr', function () {
var name = $('td', this).eq(0).text();
alert( 'You clicked on '+name+'\'s row' );
});
但是,在我的情况下,我需要这样的选择器:
$('#dataTables tbody tr').on('click', 'td', function (event) {
if ($(this).attr('id') != "first" && $(this).parent().attr('data-href') !== undefined) {
document.location = $(this).parent().attr('data-href');
}
});
如何通过保留选择器目标来解决问题?感谢。
答案 0 :(得分:2)
您仍然需要使用&#34; #example tbody&#34; 将其绑定到tbody,然后在第二个选择器中将&#34; tr td&#34; < / strong>,然后它应该在更改页面后绑定到td。
表行及其子项发生了变化,因此静态地将它们绑定到它们仍然缺少这一点,您必须使用可选的绑定参数来深入了解更改的元素,让您可以访问它们即使他们改变了