如何捕获动态数据表内元素的事件?

我有一个动态数据表,其中数据由 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 的点击次数?我怎样才能绑定它们?


慕勒3428872
浏览 107回答 2
2回答

白猪掌柜的

您遇到的问题是您的 DataTable 在绑定这些单击事件后创建 td 元素。有两种选择,在表格渲染后将所有事件监听重新绑定到 TD,或者使用事件冒泡将点击事件捕获到父组件。您可以传递一个 jQuery on()参数来告诉表侦听单击事件。$('table').on('click', 'td', function(e){&nbsp; &nbsp; alert("I'm td")});

函数式编程

将类分配给 td 并将事件处理程序绑定到此类。$.on('event.js-name', function(){});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript