簡體   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