События Jquery Mobile Swipe не позволяют перетаскивать текст на входах - PullRequest
0 голосов
/ 21 октября 2019

Я не особенно хочу использовать Jquery Mobile, потому что я использую его только для swipeleft и swiperight .... но это единственная библиотека сенсорных событий, которую я могу найти, которая работает с классами и для динамически добавляемого контента. Я использовал загрузчик, чтобы захватить то, что мне было нужно только в тот момент (не помню, что), но это было некоторое время назад, и загрузчик сейчас сломан, поэтому недавно я нашел здесь комментарий с только сенсорными событиями. И это все еще вызывает эту проблему. https://stackoverflow.com/a/51800929/11773633

Проблема, с которой я сталкиваюсь, заключается в том, что если я объявляю swipeleft и swiperight где-нибудь хотя бы один раз, влияет ли это на контент, находящийся на странице, или нет ... это приводит к тому, что входные данные и текстовые области не только будутневозможно перетаскивать выделенный текст из любого места внутри поля, но также нельзя разрешать перетаскивание самого текста ... он выбирает только 3 символа.

Это пример jsfiddle. Я связываю эту копию Jquery Mobile v1.4.5 с событиями касания в разделе html. Я также использую Jquery 2.2.4, поэтому он установлен.

http://jsfiddle.net/fLxb3dcr/

$(document).on('touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop','textarea', function(event) {
        return false;
    });

Я просто хочу найти решение этой проблемы с перетаскиванием текста для полей ввода ... И кажется, что я не могу предотвратить то, что делает этот скрипт, который, кажется, меняет способ перетаскивания в полях ввода. Пока используется свайп, это вызывает эту проблему.

1 Ответ

0 голосов
/ 21 октября 2019

Я не уверен, как это может повлиять на вещи точно ... но виновник после продолжительного копания ... оказывается scrollSupressionThreshold. Он установлен на 30, что по какой-то причине влияет на все элементы, независимо от того, нацелены они или нет. Я не уверен, для чего предназначен этот порог в общей схеме вещей, но, установив его на действительно большое число, в данном случае в экспоненциальной записи 1e9, он полностью устраняет все проблемы для полей ввода. Я уверен, что это может вернуться, чтобы укусить меня, но смахивание по-прежнему работает, и это все, что я действительно хотел.

e.event.special.swipe = {
            scrollSupressionThreshold: **(change from 30 to 1e9)**,
            durationThreshold: 1e3,
            horizontalDistanceThreshold: 30,
            verticalDistanceThreshold: 30,
...