Handsontable редактировать на мобильном устройстве

Я знаю, что handsontable не подходит для мобильных устройств, но есть ли обходной путь, который мы можем редактировать на мобильных устройствах с помощью новейшей версии?

С уважением

1 ответ

Я использую 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}),

Другие вопросы по тегам