刷新我的jquery dataTables后,jquery事件监听器无法正常工作?

时间:2013-01-27 13:00:57

标签: javascript jquery events datatables event-listener

我有一个页面,其中包含一个由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();
    }
}); 

所以我在这里,不知道如何解决这个问题

1 个答案:

答案 0 :(得分:1)

您需要将选择器挂钩到一个元素,该元素始终在加载页面中可用。如果要删除/添加table元素,这不是您想要使用的内容,而是代替:

$('body #dataTable tbody').on(...

使用:

$('body').on(...

注意,虽然这样可行,但您应该将body更改为与table最接近的父元素,您在页面加载后不会动态添加该元素 - 例如div容器或一些这样的。