【问题标题】:When using Handsontable how to force a selected cell into edit mode?使用 Handsontable 时如何强制选定单元格进入编辑模式?
【发布时间】:2013-08-20 16:09:00
【问题描述】:

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();
});

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

【问题讨论】:

    标签: jquery-plugins handsontable


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      这似乎可以解决问题。

      【讨论】:

      • 谢谢!我必须将 f2 触发器放在 setTimeout 中才能完成这项工作,因为立即触发它似乎会导致 handsontable 内部出现空错误。在延迟后触发它会将其置于事件链的末尾并且似乎可以工作
      【解决方案3】:

      点击编辑模式:

      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();   
           }
         }
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        • 2015-10-25
        • 1970-01-01
        • 2017-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多