为什么'click'事件不会触发添加到表中的按钮?

问题描述 投票:0回答:1

我正在将DataTable用于通过Ajax调用填充的表。一些列是数据库中的数据,但在最后一列中,我放置了一些按钮。当我单击该按钮时,未触发click事件,为什么?我试图委派该事件,但仅是第一次触发该事件(我单击的第一个按钮,随后的单击均无):

$( '#my_table' ).DataTable( {
            language: {
                url: 'https://cdn.datatables.net/plug-ins/1.10.20/i18n/Italian.json'
            },
            ajax: {
                url: ccwhatsapp_ajax.url + '?action=get_users_for_datatable'
            },
            responsive: true,
            dom: 'Bfrtip',
            columns: [
                { data: 'full_name' },
                { data: 'login_email' },
                { data: 'phone' },
                { data: 'info' },
                { data: 'actions' }
            ],
            columnDefs: [
                { width: '20%', targets: [0, 1, 2, 3] },
            ]
        } );

$( '#my_table' ).on( 'click', 'tbody tr td button.btn', function () {
                console.log("Click on a button!");
            } );

            $( "#my_table" ).delegate( "tbody tr td button.btn", "click", function() {
                console.log("Click on a button!");
            });

            $( '.btn-primary' ).on( 'click', function () {
                console.log("Click on a button!");
            } );

怎么了?

javascript jquery events delegates click
1个回答
0
投票

尝试将监听器更改为:

$( '#my_table tbody' ).on( 'click', 'tr td button.btn', function () {
            console.log("Click on a button!");
} );

在DataTables网站here上有一个示例。

© www.soinside.com 2019 - 2024. All rights reserved.