2015-07-21 5 views
1

Я делаю виртуальную клавиатуру для компьютера с сенсорным экраном. Я использую только угловые, html и css. Как сделать так, чтобы при касании клавиши, даже если я держу клавишу нажатой, клик вынужден «поднять мышь».Как сделать событие onclick пропускать offclick?

Причина, по которой я прошу об этом, заключается в том, что при касании 2 символов в пределах 500 мс-1000 мс он не регистрирует клик.

Если у вас есть какие-либо советы по улучшению юзабилити сенсорного экрана не стесняйтесь комментировать :)

ответ

1

Открыть демо на сенсорном устройстве для теста: http://jsbin.com/nibohe/4/

Чтобы получить родное приложение чувствовать (прикосновение/мышь) UX:

$keybKeyElement.on("touchstart mousedown", function(event){ 
    event.preventDefault(); 
    // Capture the key 
    // Send character to textarea 
    // other stuff 
}); 

Если вы используете только click событие на сенсорном экране вы должны

  • поддержки ожидания пользователя ~ 300 + мс для вверх движение
  • ~ 400мс задержки для браузера, чтобы сделать его действительным событием щелчка.

где touchstart конец event.preventDefault будет убивать click, mousedown или другие события, используемые на рабочем столе (не/сенсорными) машин.

0

Вы можете попробовать использовать onmouseup вместо onclick

+0

это не дает ответа на этот вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – leesei

+0

Он попросил, чтобы произошло действие, когда пришла кнопка мыши. Это то, что делает 'onmouseup'. Я не понимаю, как это не ответ. Вопрос не говорит, что он попробовал «onmouseup», поэтому я предложил его. Должен ли я предоставлять ссылки в своем ответе для уточнения или мне нужно добавить дополнительные объяснения? Я хотел бы знать, чтобы я мог лучше ответить в будущем. – Jason