为什么click事件处理程序仅适用于第一页

时间:2014-04-18 11:05:38

标签: javascript jquery ajax jquery-selectors datatables

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

数据表获取其数据服务器端和"bProcessing":true

我知道我的选择器只能在我的数据表的第一个页面上工作,当我更改页面时,我的功能将无法正常工作

但是,即使使用ajax异步加载,这也可以成为一种解决方案。我不想放弃ajax。

一个例子:

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

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

1 个答案:

答案 0 :(得分:1)

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

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