如何在handsontable中的同一个钩子中绑定多个事件?

时间:2017-07-10 05:36:19

标签: javascript events hook handsontable

描述

如何将多个事件绑定到同一个钩子中?

假设我有一个名为updateDataDump的函数,现在每当这些事件发生afterChangeafterColumnMoveafterRemoveRowafterRemoveCol时。我想要执行该功能。

Handsontable.hooks.add('afterChange', () => {
    updateDataDump();
});

Handsontable.hooks.add('afterColumnMove', () => {
    updateDataDump();
});

Handsontable.hooks.add('afterRemoveRow', () => {
    updateDataDump();
});

Handsontable.hooks.add('afterRemoveCol', () => {
    updateDataDump();
});

有什么方法可以将所有功能组合成一个?

您的环境

  • Handsontable版本:版本:0.32.0
  • 浏览器名称和版本:Google Chrome 57.0.2987.110(64位)
  • 操作系统:Ubuntu 14.04

1 个答案:

答案 0 :(得分:0)

不幸的是,没有内置选项可以同时为几个挂钩添加逻辑。

您可以选择的解决方案也是调用updateSettings

hot.updateSettings({

  afterChange: function(){
      updateDataDump()
  }, 

  afterColumnMove: function(){
      updateDataDump()
  }, 

  afterRemoveRow: function(){
    updateDataDump()
  }, 

  afterRemoveCol: function(){
    updateDataDump()
  }, 
});


function updateDataDump(){

}

或只使用钩子名称,因为addHook方法使用钩子的字符串表示。

var hooks = ['afterChange', 'afterColumnMove', 'afterRemoveRow', 'afterRemoveCol'];

for(var i = 0; i < hooks.length; i++){
    hot.addHook(hooks[i], updateDataDump);
}

function updateDataDump(){

}