実際のホールドでそれを行うには、次のような何かしたい:あなたのフィドルを見た後
var timeoutContainer;
// this should work with mouse only
$el.on('mousedown', function(ev) {
if(ev.type=='click'){
timeoutContainer = setInterval(function(){
// your stuff.
}, timeToHold);
}
});
$el.on('mouseup', function(ev) {
clearInterval(timeoutContainer);
});
// or, if you only want to apply it to touch.
$el.on('touchstart', function(ev) {
timeoutContainer = setTimeout(function(){
// your stuff.
}, timeToHold);
});
$el.on('touchend', function(ev) {
clearTimeout(timeoutContainer);
});
を理由touchcancelの予想通り、それが機能していないことがあります。私はあなたがdocument.mouseupを持っていることに気づいた。それは、マウスのように動く指を扱うかもしれない。タッチスタートとして明示的に行うと、動作が異なる場合があります。上記のように、マウスを下に動かす前に、モバイルを確認する必要があります。
この投稿はおそらく役に立ちます。 https://stackoverflow.com/questions/11144370/using-mousedown-event-on-mobile-without-jquery-mobile –