javascript - 为什么单击事件处理程序仅在第一页上起作用

标签 javascript jquery ajax jquery-selectors datatables

在我的 "fnInitComplete": function(oSettings, json) 中,我有一个像 $('[id^=f_]').each(function () 这样的选择器>.

Datatables 在服务器端获取数据,"bProcessing":true

我知道我的选择器只能在数据表的第一上工作,当我更改页面时,我的功能将不起作用.

但是,即使使用 ajax 异步加载,有什么解决方案可以使这项工作正常进行呢?我不想放弃ajax。

一个例子:

"fnInitComplete" : function(oSettings, json) {
$('[id^=r_]').each(function () {
    $(this).click(function(e) {
        alert('Foo');
        e.preventDefault();
    })
});
}

仅适用于第一个加载的行数据表。有什么建议吗?

最佳答案

使用 on() 将操作绑定(bind)到绑定(bind)完成后可能不在 DOM 上的元素。

"fnInitComplete" : function(oSettings, json) {
    $(document).on('click', '[id^=r_]', function () {
        alert('Foo');
        e.preventDefault();
    })
}

关于javascript - 为什么单击事件处理程序仅在第一页上起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23152827/

相关文章:

javascript - php代码中的弹出窗口

javascript - Modal 出现在 Chrome/Firefox 上,但没有出现在 safari 上?

javascript - Jquery/JavaScript : How to append the data by column dynamically to each row in jquery?

jquery - 选择给出错误的值

php - 状态板程序自动分页

javascript - 如何限制 AJAX API 免于不必要的使用(例如执行 SELECT * 的人)

JavaScript : How to inspect break point values in Chrome Debugger tools

javascript - 在 Javascript 中填充的可折叠项将不起作用

javascript - 如何在 Spring Boot 中将参数从 Ajax 传递到 RestController

javascript - 跨浏览器 HTML5 javascript 生成单次滴答声