11

Handsontable 为选择单元格时提供了一些不错的钩子,但我似乎无法找到方法来让我在选择单元格时强制它进入编辑模式。

我可以像这样检测单元格选择:

Handsontable.PluginHooks.add( 'afterSelection', function( row, column ) {
    var current_td = this.getCell( row, column );
});

从那里我什至可以获得被选中的单元格元素。但是从那里我似乎无法触发单元格进入编辑模式(其中有一个主动选择的 textarea 字段)。这通常由双击触发。做显而易见的事情似乎不起作用:

Handsontable.PluginHooks.add( 'afterSelection', function( row, column ) {
    var current_td = this.getCell( row, column );

    $(current_td).dblclick();
});

其他人曾经做过这个或对我如何让它工作有想法吗?

4

3 回答 3

11

对于任何对此问题感兴趣的人,现在有一种更好的可编程方法可以实现相同的结果。

this.selectCell(row, col);
this.getActiveEditor().beginEditing();

这将选择(row, col)单元格并进入编辑模式(即与双击或按 F2/Enter 相同)。

于 2015-01-22T11:46:22.517 回答
6

我相信我已经回答了我自己的问题:

Handsontable.PluginHooks.add( 'afterSelectionEnd', function() { 
        f2_event = $.Event( 'keydown', { keyCode: 113 } );
        this.$table.trigger(f2_event);
});

这似乎可以解决问题。

于 2013-08-19T14:38:48.353 回答
0

点击编辑模式:

afterSelectionEnd: function (r, c, r2, c2) {
  if (r == r2 && c == c2) {
     getActiveEditor().beginEditing();
     getActiveEditor().enableFullEditMode();   
  }
}

当您添加 enableFullEditMode(); 插入符号在按向左或向右按​​钮时在单元格中移动,而不是跳转到另一个单元格。

另一个例子:只有第一行:

afterSelectionEnd: function (r, c, r2, c2) {
  if (r == r2 && c == c2) {
     if (r == 0 && r2 == 0) {
         getActiveEditor().beginEditing();
         getActiveEditor().enableFullEditMode();   
     }
   }
 }
于 2017-02-28T20:29:37.430 回答