【问题标题】:How do you catch events for elements inside dynamic datatables?如何捕捉动态数据表中元素的事件?
【发布时间】:2020-12-08 18:22:22
【问题描述】:

我有一个动态数据表,其中数据由 Ajax 加载。 我的 HTML 是:

<table id="dynamic_table"></table>

JS 是:

$(document).ready(function() {
        $('#dynamic_table').DataTable( {
            "ajax": '/ajax_handler',
            ...
$('td').on('click', function(e){
    alert("I'm td")
});
$('body').on('click', function(e){
    alert("I'm body")
});

'body' 被捕获,但 'td' 没有。当然,浏览器会显示带有 tr/td 标签的行,但 JS 似乎仍然看不到(动态)加载的数据。

如何捕获对我的动态 td 的点击?如何绑定它们?

【问题讨论】:

    标签: javascript jquery ajax datatables


    【解决方案1】:

    您遇到的问题是绑定这些单击事件后 DataTable 创建 td 元素。有两种选择,在表格渲染后将所有事件监听重新绑定到 TD,或者使用事件冒泡将点击事件捕获到父组件。 您可以传递一个 jQuery on() 参数来告诉表监听点击事件。

    $('table').on('click', 'td', function(e){
        alert("I'm td")
    });
    

    【讨论】:

      【解决方案2】:

      将类分配给 td 并将事件处理程序绑定到此类。

      $.on('event.js-name', function(){});

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多