我有一个页面,其中包含一个由dataTables填充的大表
我必须显示几个表,所以每次我删除整个表及其容器和重新初始化是一个新表,但在我刷新表并再次加载它后,所有我的事件监听器都消失了。
只需点击几下鼠标即可正常工作,甚至无法正常工作
我以金字塔顺序嵌套我的所有功能,所以我可以用1或2个键功能调用底部功能,但是回想起它们也不起作用。
所以我开始使用jquery .on
,但它没有奏效。
这是我的.on
函数之一:
$('body #dataTable tbody').on('blur keyup', 'div.confirm-edit #tmp', function(e){
if(e.type === 'blur' || (e.type === 'keyup' && e.which === 13)){
confirmCurrentActive();
}
if(e.type === 'keyup' && e.which === 27){
cancelCurrentActive();
}
});
所以我在这里,不知道如何解决这个问题
答案 0 :(得分:1)
您需要将选择器挂钩到一个元素,该元素始终在加载页面中可用。如果要删除/添加table
元素,这不是您想要使用的内容,而是代替:
$('body #dataTable tbody').on(...
使用:
$('body').on(...
注意,虽然这样可行,但您应该将body
更改为与table
最接近的父元素,您在页面加载后不会动态添加该元素 - 例如div
容器或一些这样的。