События Javascript не работают в планшетном ПК? - PullRequest
5 голосов
/ 20 января 2012

Я разработал веб-приложение в asp.net 3.5. Он потребляет много событий javascript / JQuery и работает нормально в обычном браузере на ПК, но мой клиент говорит, что они не работают в планшетных ПК / Android и IPad. Как у меня есть выпадающий список, в котором я запускаю события нажатия клавиш и нажатия мыши в javascript, и они прекрасно работают в обычных браузерах, мне нужно быть в рабочей форме, все это в iPad и планшетах Android.

Ответы [ 3 ]

4 голосов
/ 20 января 2012

События нажатия не будут работать на iPad, так как это сенсорный экран - думаю, щелчок против касания.Вы рассматривали возможность использования JQueryMobile вместо JQuery?Я оптимизирован для сенсорных устройств - как говорится на самой первой странице сайта.

Вместо того, чтобы использовать клик, у него есть целый набор событий, которые вы можете подключить к , т.е. нажать, провести, taphold и т. д. ... Было бы достаточно легко привязать одну и ту же функцию к событию click и tap, например

('myelement').bind('click', function(event){
   myClickFunction();   
});

('myelement').bind('tap', function(event){
   myClickFunction();   
});

Возможно (почти наверняка) более элегантные способы сделать это - но это простоначало действительно.

1 голос
/ 20 января 2012

Существуют сенсорные события для устройства с сенсорным экраном:

touchstart: a finger is placed on a DOM element.
touchmove: a finger is dragged along a DOM element.
touchend: a finger is removed from a DOM element.

Возможно, вы захотите попробовать поработать с ними.При этом полезно использовать такие события, как change (или onchange inline с элементом) для выпадающего списка, поскольку он будет работать независимо от того, что его меняет (событие клавиатуры, мыши или касания).1006 *

Здесь - ресурс, чтобы узнать больше.

0 голосов
/ 03 августа 2013

Вы можете использовать комбинацию и попробовать сенсорный запуск вместо нажатия

('myelement').bind('touchstart click', function(event){
   myClickFunction();   
});
...