Событие Javascript touchend не сработает на Android - PullRequest
3 голосов
/ 21 февраля 2012

Я пытаюсь использовать touchend (или событие taphold, оба не сработают), как указано в jquery mobile.Я разрабатываю приложение для Android на платформе phonegap.Мой AVD работает под управлением Android 4.0.3, и моя версия телефонного промежутка 1.3.0.

Поскольку я использую телефонный пробел, я кодирую в javascript, и целью является восстановление текста, выбранного пользователем после долгого нажатиядля слова со следующим кодом.

var selectAction = function(){
    LOGGER.log('event.js : selectAction');
};

function selectMobile(component){
    component.addEventListener('touchend',selectAction,false);
}

Это на самом деле работает нормально, если я нажму относительно быстро, событие сработает, и я смогу получить сообщение журнала.Тем не менее, быстрое касание не выделит текст (у меня больше кода, берущего выделенный текст, но это не проблема)

Когда пользователь долго нажимает в Android, появляется меню действий по умолчанию,и это, кажется, блокирует дальнейшие события от запуска.Из-за этого я никогда не вхожу в свой selectAction, когда фактический текст выделен.

Кто-нибудь знает, как правильно получить выделенный текст в html / javascript на платформе Android?

Большое спасибо.

1 Ответ

7 голосов
/ 01 июня 2012

Это может быть связано с ошибкой ниже. http://code.google.com/p/android/issues/detail?id=19827

попробуйте перехватить touchmove и вызвать e.preventDefault ()

...