locked
Не работает onmouseup в WebView на эмуляторе. RRS feed

  • Вопрос

  • В приложение встроен WebView, мне нужно отлавливать в javascrip событие отпускания кнопки мыши или поднятия пальца с экрана. Логично, что в html это одно событие - onmouseup. Но, если эмулятор переключен в "touch mode", тогда событие onmouseup не срабатывает. Это бага эмулятора или на реальном устройстве будет также? Или может вообще событие поднятия пальца с экрана в браузере это не onmouseup?

    Ниже код html, если просто нажать на кнопку и отпустить, тогда событие вызывается. Если нажать на кнопку, просести пальцем в сторону и отпустить, тогда не вызывается.

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"><body id="body"><button style="width: 500px; height: 500px;" onmouseup="alert('Hello')"></button></body></html>

    12 октября 2012 г. 8:31

Ответы

  • Нужно выставить стиль для button -ms-touch-action: none, тогда кнопка не утягивается вслед за пальцем и событие onmouseup отрабатывает как положено.
    16 октября 2012 г. 18:20

Все ответы

  • Привет.

    На сколько я знаю, нужно использовать специальное событие onmspointerup event. А определить чем было вызвано событие можно примерно так:

        function buttonClickHandler(eventInfo) {
            if (eventInfo.pointerType == eventInfo.MSPOINTER_TYPE_TOUCH) {
                // Do something for touch input only
                console.log('Touch');
            } else {
                // Do something for non-touch input
                console.log('Mouse');
            }
        }


    Для связи [mail]

    15 октября 2012 г. 10:41
  • Нужно выставить стиль для button -ms-touch-action: none, тогда кнопка не утягивается вслед за пальцем и событие onmouseup отрабатывает как положено.
    16 октября 2012 г. 18:20
  • Спасибо, что поделились решением проблемы.


    Для связи [mail]

    17 октября 2012 г. 6:46