繁体   English   中英

jQuery:在用户的手指触摸元素时防止页面滚动

[英]jQuery: Prevent page scroll when user's finger touches an element

我正在使用以下jQuery插件: http : //willowsystems.github.io/jSignature/

我正在尝试做一个非常简单的操作,即当用户的手指在签名区域内时停止页面滚动(在手机上写签名时,页面移动非常糟糕,以至于根本无法写出签名) )。 我尝试了以下在Fi​​refox中不起作用的方法,但不确定为什么:

$('.signature').on('touchmove', function(e) {
        e.preventDefault();
    });

我也尝试过这不起作用:

$(document).delegate('.signature', 'touchmove', false);

我搜索了几个小时,但似乎找不到任何有效的方法。 如果需要更多详细信息,请让我知道,我将很乐意补充此问题。

非常感谢大家的帮助。

编辑:我正在手机上使用最新版本的Firefox。

尝试在html元素的ontouchmove上使用e.preventDefault()

<div class="signature" ontouchmove="event.preventDefault();">

</div>

这个例子对我有用http : //jsbin.com/pulul/1/edit?html,css,output

Android浏览器中的字段中存在相同问题。 捕获签名获取点而不是sig。 因此,在浏览器中进行测试时,我发现当我用鼠标单击jSignature时,焦点不会从先前的字段丢失。 因此,尝试这样的事情:

onblur="if(this.value.length>1) document.getElementById('CustomerSignature').focus()"

Welp,您将看到onblur在您触摸jSignature时不会触发,而在您触摸其他字段时会触发。 有呀。 尚未能够在平板电脑上重现报告给我的确切错误; 但我认为滚动条正在发送到ANOTHER元素。

因此,解决方法是强制将焦点更改为jSignature。 那就是我所想的。 现在,我摆弄HTML,所以我的最后一个字段是select,并使用onchange将焦点设置到我的jSig。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM