通过数据表jQuery插件添加的按钮上的jQuery单击事件

Posted

技术标签:

【中文标题】通过数据表jQuery插件添加的按钮上的jQuery单击事件【英文标题】:jQuery click event on button added through datatable jquery plugin 【发布时间】: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>

【问题讨论】:

【参考方案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");
  );
    
 );

【讨论】:

以上是关于通过数据表jQuery插件添加的按钮上的jQuery单击事件的主要内容,如果未能解决你的问题,请参考以下文章

jQuer插件满屏气泡飘落动画效果

jquery编写插件的方法

再谈:jquery编写插件的方法

自己动手做jQuer插件

jQuery UI 入门之实用实例分享

jQuery插件编写及链式编程模型小结