【问题标题】:jQuery click event on button added through datatable jquery plugin通过数据表jQuery插件添加的按钮上的jQuery单击事件
【发布时间】:2018-05-13 23:40:12
【问题描述】:

我正在使用数据表插件创建一个表。已将按钮添加到表格的最后一列。问题:未触发按钮的点击。

创建表的 Javascript。

<script>
  $(document).ready(function() {
    $('#tagtbl').DataTable( {
        "paging": false,
        "info": false,
        "searching": false,
        "ajax": "../api/clienttagtbl.php?off=OFF002",
        "rowId": "id",
        "columns": [
            { "data": "tagname" },
            { "data": null, "defaultContent": '<button id="tagdelete" type="button" class="btn btn-danger btn-sm" >X</button>' }
        ]
    } );
  } );
</script>

调用 On click 的 Javascript

<script>
$(document).ready(function() {
  $('#tagdelete').click( function(){
    console.log("hi"); // <<---This is not working
  });
  $('#tagtbl').click( function(){
    console.log("hi2");  //<<---This is working
  });
});
</script>

HTML

    <table id="tagtbl" class="table table-sm" >
      <thead>
        <tr>
          <th>Tag Name</th>
          <th></th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th>Tag Name</th>
          <th></th>
        </tr>
      </tbody>
    </table>

【问题讨论】:

    标签: javascript jquery html-table datatables


    【解决方案1】:

    试试这个

     $('#tagtbl').on('click','.tagdelete' function(){
        console.log("hi");
      });
    

    我建议您为所有按钮使用一个类,而不是使用 id。

    【讨论】:

    • 给按钮一个类并使用上面的代码。
    • 关于我的方法为什么不起作用的任何见解。我对jQuery很陌生@
    • 你能在 jquery 中搜索事件委托吗?这会让你对你的问题有足够的了解。
    【解决方案2】:

    你需要在数据表drawCallback函数中添加按钮点击

    $('#example').dataTable( {
        "drawCallback": function( settings ) {
           $('#tagdelete').click( function(){
        console.log("hi");
      });
      $('#tagtbl').click( function(){
        console.log("hi2");
      });
        }
    } );
    

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 1970-01-01
      • 2018-12-18
      • 2017-01-25
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      相关资源
      最近更新 更多