Jquery Mobile Swipe 事件导致输入中的文本不可拖动

Posted

技术标签:

【中文标题】Jquery Mobile Swipe 事件导致输入中的文本不可拖动【英文标题】:Jquery Mobile Swipe Events Causes Text In Inputs To Not Be Draggable 【发布时间】:2020-02-17 04:39:52 【问题描述】:

我并不是特别想使用 Jquery Mobile,因为我只将它用于 swipeleft 和 swiperight....但它是我能找到的唯一一个与类一起使用并用于动态添加内容的触摸事件库。我确实使用下载器来获取我当时只需要的东西(不记得是什么),但那是不久前的事了,现在下载器坏了,所以我最近在这里发现了一个只有触摸事件的评论。它仍然导致这个问题。 https://***.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】:

我不确定这会如何影响事情……但经过大量挖掘后的罪魁祸首……原来是 scrollSupressionThreshold。它设置为 30,由于某种原因,这会影响所有元素,无论它们是否被定位。我不确定这个阈值在总体方案中意味着什么,但是通过将其设置为一个非常高的数字,在本例中为指数符号 1e9,它完全消除了输入字段的所有问题。我相信这可能会再次咬我,但滑动仍然有效,这就是我真正想要的。

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

【讨论】:

以上是关于Jquery Mobile Swipe 事件导致输入中的文本不可拖动的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile Swipe 事件未触发...

jquery mobile - 在滑动事件上检测触摸数组

Jquery Mobile Swipe 性能问题

我的.on Swipe只能在它休息之前工作一次并且必须刷新一切--JQuery Mobile / Javascript

手机浏览页面touch操作,解决touch事件和浏览器滚动条冲突问题;zepto,swipe事件。

来自 jQuery Mobile 的面板