移动设备上的Handsontable编辑

时间:2016-08-05 10:17:11

标签: handsontable

我知道掌上电脑不适合移动设备,但我们是否可以使用最新版本在移动设备上进行编辑?

此致

1 个答案:

答案 0 :(得分:0)

我使用Handsontable版本0.25.1,但我想在最新版本中情况仍然相同。

我的经验仅适用于iPad设备(iOS 9);我不能谈论所有移动设备。

我发现渲染可以接受。但如果你点击一个单元格来编辑没有任何反应,这是相当有限的!我做了两个小改动来纠正:

handsontable.full.js中追踪所有这些,onCellMouseDown()中的逻辑正在测试event.button === 0(即鼠标左键)以开始设置以识别双击以激活移动文本编辑器。在触摸设备上,他们明确地从他们的onMouseDown/Move/Up()调用他们的onTouchStart/Move/End(),将接收到的event结构的鼠标事件传递给触摸事件。但是,触摸事件“event”结构没有button成员,因此为undefined,导致行为不良。

在传递给鼠标事件处理程序之前直接设置传入event.button = 0解决了这个问题。排队:

event.button = 0; // set as left mouse button

进入onTouchStart() [在呼叫onMouseDown(event)之前,在第1326行附近]& onTouchEnd() [在致电onMouseUp(event)之前,在第1368行附近]。

现在正确点击一个单元格可以进行编辑。它会调出他们的MobileTextEditor。我出于多种原因不喜欢这种情况,包括经常出现在屏幕键盘后面的事实,因此用户甚至不知道它在那里!我更改了Handsontable.TextCell [第4346行],以便editor:行显示为:

  editor: (isMobileBrowser() && Handsontable.useMobileEditor) ? getEditorConstructor('mobile') : getEditorConstructor('text'), // only use mobile editor if explicitly called for

所以它使用我喜欢的标准就地文本编辑器,除非你去hot.updateSettings({useMobileEditor: true})