ここにあるバージョンのコードを使用しています
var startTime, endTime;
document.getElementById(queryid).addEventListener('touchstart',function() {
startTime = new Date().getTime();
},false);
document.getElementById(queryid).addEventListener('touchend',function(event) {
endTime = new Date().getTime();
if((endTime-startTime) > 1000)
alert('tap hold event');
},false);
何かのアクションの前にタップアンドホールドの「トリック」を行いますが、私の問題は、画面に触れるのをやめた場合にのみアクションがトリガーされるのに対し、少なくとも1秒間タップした後にアクションがトリガーされるようにしたいということです。画面かどうか..
これは私が望むものに近いように見えますが、完全ではないようです..(私の理解では..gbStillTouchingは常にfalseですか?どこにも切り替えられません。 ?
var gnStartTime = 0;
var gbMove = false;
var gbStillTouching = false;
function checkTapHold(nID) {
if ((!gbMove) && (gbStillTouching) && (gnStartTime == nID)) {
gnStartTime = 0;
gbMove = false;
alert('tap hold event');
}
}
window.addEventListener('touchstart',function(event) {
gnStartTime = Number(new Date());
setTimeout('checkTapHold(' + gnStartTime + ');clearTimeout();',2000);
},false);
window.addEventListener('touchmove',function(event) {
gbMove = true;
},false);
window.addEventListener('touchend',function(event) {
gbStillTouching = false;
},false);