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();
});
其他人曾经做过这件事,或者想过如何让它发挥作用?
答案 0 :(得分:8)
对于这个问题中的任何人,现在有一种更好的可编程方式来实现相同的结果。
this.selectCell(row, col);
this.getActiveEditor().beginEditing();
这将选择(row, col)
单元格并进入编辑模式(即双击或按F2 / Enter键相同)。
答案 1 :(得分:6)
我相信我已经回答了我自己的问题:
Handsontable.PluginHooks.add( 'afterSelectionEnd', function() {
f2_event = $.Event( 'keydown', { keyCode: 113 } );
this.$table.trigger(f2_event);
});
这似乎可以解决问题。
答案 2 :(得分: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();
}
}
}