javascript - 在按钮集合中添加自定义按钮
问题描述
我想在.buttons-collection下添加自定义按钮。请参阅下面的快照和示例。
buttons: [{extend : 'collection',
text : '<i class="fa fa-bars"></i>',
buttons : [ 'copy', 'csv', 'excel', 'pdf', 'print']}]
按钮应命名为“报告问题”。通过单击按钮,它应该运行下面的 JS(带有表名)。此代码发送带有问题描述的电子邮件(与表格相关的问题) -
onclick=JS("function() {
$(location).attr('href', 'mailto:xxx.com?subject='
+ encodeURIComponent('Issue on Table' + this.table.name)
+ '&body='
+ encodeURIComponent('Please check issue on table ' + '\"' + this.table.name + '\"'));
}
解决方案
假设您有<table>
一个 IDmyTable
和名称Your Name Here
(仅作为占位符)的,您可以使用以下内容:
$(document).ready(function() {
$('#myTable').DataTable( {
dom: 'Bfrtip',
buttons: [
{ extend : 'collection',
text : '<i class="fa fa-bars">buttons</i>',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print',
{
text: 'Report Issue',
action: function ( e, dt, node, config ) {
reportIssue(e, dt, node, config);
}
}
]
}]
} );
// e - the button click event
// dt - the datatable object
// node - button node
// config - the button's config (e.g. 'text')
function reportIssue(e, dt, node, config) {
var tableName = $('#myTable').attr('name');
alert( 'The "' + config.text + '" button was clicked\n'
+ 'for the "' + tableName + '" table.' );
}
});
解决方案的核心是这部分,其中声明了自定义按钮:
{
text: 'Report Issue',
action: function ( e, dt, node, config ) {
reportIssue(e, dt, node, config);
}
}
注意事项:
我在主按钮上添加了“按钮”一词,以使其不为空:
当您单击它时,您会看到以下按钮集:
之后,由您决定添加到reportIssue()
函数中的内容。您可能不需要传递给它的任何变量。可能不是,基于问题中的示例 JS(我使用了警报,仅用于测试)。
推荐阅读
- javascript - 在 Javascript 中,声明式编码的幕后仍然是必要的吗?
- collections - Blueprism - 将网页中的数据提取到集合中
- android - 如何修复 Android O+ 中的 BLE 设备自动断开连接?
- java - 如何使用 Criteria Restriction.like、Hibernate 和 Spring 设置不同的参数?
- mysql - 如何将 INSERT INTO -> ON DUPLICATE KEY UPDATE 函数的值放入 SELECT 中?
- javascript - 如何更改对象数组中的列位置
- amazon-web-services - Apache Solr 和 AWS Comprehend Machine Learning 用于排序和分类
- r - ggplot中的两个不同颜色键
- sql - 如何根据 Where 条件选择 MAX 值
- c++ - Swift 的 [weak self] 替代 C++