こんにちは私はwebappを構築しています。 http://cubiq.org/remove-onclick-delay-on-webkit-for-iphone に私はこのスクリプト見つけonclickの遅延を削除するにはコードがアンドロイドのwebappsのonclick delayを削除する
function NoClickDelay(el) {
this.element = el;
if('ontouchstart' in window){
console.log("===================touch supported :P")
this.element.addEventListener('touchstart', this.handleEvent, false);
}
}
NoClickDelay.prototype = {
handleEvent: function(e) {
switch(e.type) {
case 'touchstart': this.onTouchStart(e); break;
case 'touchmove': this.onTouchMove(e); break;
case 'touchend': this.onTouchEnd(e); break;
}
},
onTouchStart: function(e) {
//e.preventDefault(); //removed to let the page scroll
this.moved = false;
this.element.addEventListener('touchmove', this, false);
this.element.addEventListener('touchend', this, false);
},
onTouchMove: function(e) {
this.moved = true;
},
onTouchEnd: function(e) {
this.element.removeEventListener('touchmove', this, false);
this.element.removeEventListener('touchend', this, false);
if(!this.moved) {
// Place your code here or use the click simulation below
var theTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
if(theTarget.nodeType == 3) theTarget = theTarget.parentNode;
var theEvent = document.createEvent('MouseEvents');
theEvent.initEvent('click', true, true);
theTarget.dispatchEvent(theEvent);
}
}
};
私の質問は、これはiphone/iPadではなくAndroid上で動作することであるbascically-です。何がアンドロイドで動作するのを防ぎ、アンドロイドや他のデバイスで同様の動作を達成するために何ができるのですか?助けてください。
AndroidはラグonClicksと同じ問題を抱えている:誰かがそこにあるあなたのリンクで
はい。実際の問題はe = e.originalEventを追加することでした。 onTouchEnd関数の 。 :) – ghostCoder