{hero}

按钮.按钮.操作

自:Buttons 3.0.0 版起

当按钮激活时执行的操作。
请注意 - 该属性需要适用于 DataTables 的 Buttons 扩展。

说明

此函数定义了用户激活按钮时按钮将执行的操作。这通常会对 DataTable 执行一些操作,但也可以是任何操作,因为此函数可由您自己定义。

按钮可以通过多种方式激活

  • 鼠标:单击
  • 移动设备:点击按钮
  • 键盘:tab 键浏览按钮,return 键激活
  • API: button().trigger()

类型

函数 action( e, dt, node, config, callback )

说明

激活按钮时执行此函数,允许用户触发某些操作。

参数
返回

不需要返回值,也不期望有返回值。对于任何返回的值,均不会采取任何操作。

默认

  • 值:默认操作取决于按钮类型。请参阅按钮类型文档

示例

自定义操作函数

new DataTable('#myTable', {
	layout: {
		topEnd: {
			buttons: [
				{
					text: 'Alert',
					action: function (e, dt, node, config, cb) {
						alert('Activated!');
						this.disable(); // disable button
					}
				}
			]
		}
	}
});

创建一个自定义按钮,它使用内置按钮操作方法

new DataTable('#myTable', {
	layout: {
		topEnd: {
			buttons: [
				{
					text: 'Create CSV',
					action: function (e, dt, node, config, cb) {
						// Do custom processing
						// ...

						// Call the default csvHtml5 action method to create the CSV file
						DataTable.ext.buttons.csvHtml5.action.call(
							this,
							e,
							dt,
							node,
							config,
							cb
						);
					}
				}
			]
		}
	}
});

异步处理完成回调

new DataTable('#myTable', {
	layout: {
		topEnd: {
			buttons: [
				{
					text: 'Make Ajax call',
					async: 100,
					action: function (e, dt, node, config, cb) {
						// Do custom async processing - e.g. an Ajax call
						new Promise(resolve => {
							// ...

							resolve();
							cb();
						});
					}
				}
			]
		}
	}
});