Javascript 为什么单击事件处理程序不';整理完桌子后我就不工作了
我使用jquerydatatables,我有一个表,它是使用Javascript 为什么单击事件处理程序不';整理完桌子后我就不工作了,javascript,jquery,html,datatables,Javascript,Jquery,Html,Datatables,我使用jquerydatatables,我有一个表,它是使用foreach循环生成的。在生成的每一行中,都有两个按钮,并将不同的编号添加到data属性中 加载页面后,dataTables将启动并呈现该表。我有一个onClick处理程序,它在单击时响应按钮 但是,当我对dataTables能够执行的表列进行排序时,按钮根本不响应onClick处理程序 当使用任何一个排序列时,如何防止dataTables导致按钮不起作用?不要使用$('.button')。单击,因为这些按钮在排序时会重新创建,请在j
foreach
循环生成的。在生成的每一行中,都有两个按钮,并将不同的编号添加到data
属性中
加载页面后,dataTables将启动并呈现该表。我有一个onClick
处理程序,它在单击时响应按钮
但是,当我对dataTables能够执行的表列进行排序时,按钮根本不响应onClick
处理程序
当使用任何一个排序列时,如何防止dataTables导致按钮不起作用?不要使用$('.button')。单击,因为这些按钮在排序时会重新创建,请在jquery事件上使用
$(document).on('click', '.button',function(){
//your code
});
您需要使用委托事件处理程序,因为在重新绘制表时,按钮很可能会被重新创建
以下是需要更新以匹配结构的示例代码:
$('#example tbody').on('click', '.button', function(e){
// your code
});
将示例
替换为表的ID属性,并将按钮
替换为适合按钮的CSS选择器
有关更多信息,请参阅。这是否在所有浏览器上都会发生?这不起作用。我想提一下,我对代码做了很大的修改。现在,所有表行内容都是使用DataTable的ajax选项生成的,而不是foreach。ajax PHP代码生成加载到表中的HTML按钮。如果此代码不起作用,请使用选择器,例如,如果您的按钮具有类“test”,则改为“.button”add“.test”。您的代码不正确,因为jQuery函数需要以下顺序的参数:事件、选择器、处理程序。除了将事件附加到文档
元素容易出错之外,最好将其缩小到表体,如$('example tbody')
.thnx让我知道。