Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么单击事件处理程序不';整理完桌子后我就不工作了_Javascript_Jquery_Html_Datatables - Fatal编程技术网

Javascript 为什么单击事件处理程序不';整理完桌子后我就不工作了

Javascript 为什么单击事件处理程序不';整理完桌子后我就不工作了,javascript,jquery,html,datatables,Javascript,Jquery,Html,Datatables,我使用jquerydatatables,我有一个表,它是使用foreach循环生成的。在生成的每一行中,都有两个按钮,并将不同的编号添加到data属性中 加载页面后,dataTables将启动并呈现该表。我有一个onClick处理程序,它在单击时响应按钮 但是,当我对dataTables能够执行的表列进行排序时,按钮根本不响应onClick处理程序 当使用任何一个排序列时,如何防止dataTables导致按钮不起作用?不要使用$('.button')。单击,因为这些按钮在排序时会重新创建,请在j

我使用jquerydatatables,我有一个表,它是使用
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让我知道。