2017-11-08 4 views
0

保持可能なボタンは、デスクトップ上で動作しますが、間違っているものを携帯JSのボタンを押すことができます。モバイルデバイスで正しく動作するためにコードを書き換える必要はありますか?

clicker.mousedown(function(){ 
    timeout = setInterval(function(){ 
     clicker.text(count++); 
    }, 500); 

    return false; 
}); 

http://jsfiddle.net/8FmRd/ 上では動作しませんか?

+0

この投稿はおそらく役に立ちます。 https://stackoverflow.com/questions/11144370/using-mousedown-event-on-mobile-without-jquery-mobile –

答えて

0

実際のホールドでそれを行うには、次のような何かしたい:あなたのフィドルを見た後

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を持っていることに気づいた。それは、マウスのように動く指を扱うかもしれない。タッチスタートとして明示的に行うと、動作が異なる場合があります。上記のように、マウスを下に動かす前に、モバイルを確認する必要があります。

0

モバイルデバイス上のボタンのタッチを検出するには、タッチスタートとタッチイベントを使用する必要があります。いくつかのデバイスでは、touchmoveもトリガされるので、そのことを確認することもできます。

https://developer.mozilla.org/en-US/docs/Web/API/Touch_events

関連する問題