2

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

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

4

1 回答 1

1

您需要将选择器连接到加载后页面中始终可用的元素。如果您要删除/添加table元素,这不是您想要使用的,所以不要:

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

利用:

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

请注意,虽然这会起作用,但您应该更改body为最接近table您在页面加载后未动态添加的父元素 - 例如div容器或类似容器。

于 2013-01-27T13:07:28.367 回答