Есть ли способ, чтобы событие сенсорного запуска не вызывало событие щелчка? - PullRequest
9 голосов
/ 20 февраля 2012

Когда посетитель нажимает на изображении, событие click будет запущено.Однако, когда кто-то касается изображения, это же событие click будет запущено, даже если доступно событие touchstart.

Мне нравится другое поведение для фактического события щелчка (мыши) исенсорное событие.Странно то, что даже событие mouseup запускается при использовании на смартфоне.Есть ли в любом случае можно отделить мышь от сенсорных событий?

Ответы [ 3 ]

9 голосов
/ 20 февраля 2012
event.preventDefault();

Сделал трюк, надеюсь, это поможет людям!

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

Вы можете нормализовать событие ..

Смотрите мой ответ на этот вопрос:

Событие Click, вызываемое дважды на кассе в iPad

Вы также можете найти вдохновение в мобильном исходном коде jQuery: http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js Начните со строки 982

/* 
* "events" plugin - Handles events
*/

(function( $, window, undefined ) {

// add new event shortcuts
$.each( ( "touchstart touchmove touchend orientationchange throttledresize " +
                    "tap taphold swipe swipeleft swiperight scrollstart scrollstop" ).split( " " ), function( i, name ) {

    $.fn[ name ] = function( fn ) {
        return fn ? this.bind( name, fn ) : this.trigger( name );
    };

    $.attrFn[ name ] = true;
});
....

Посмотрите на событие касания: (строка 1049)

$.event.special.tap = {
0 голосов
/ 18 апреля 2012

Это сложный способ предотвратить щелчок после сенсорного запуска.Клик, который распространяется после сенсорного запуска, называется призрачным щелчком.

Google внедрил решение.Вот, пожалуйста.

http://code.google.com/mobile/articles/fast_buttons.html#ghost

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...