私はJquery Mobileを使用していますが、タッチイベントが2回トリガされています。最初はマウスイベントとタッチイベントのオーバーラップが考えられましたが、タブレット/スマートフォンでマウスイベントをバインド解除しようとしましたが、イベントはまだ2回トリガーされています。なぜタッチイベントが2回トリガされたのか分かりません
は、ここで私はあなたが任意のアイデアを持っている場合、助けてくださいしばらくの間、これを理解しようとしてきた
//Tablet Features
var eventType = {
swipeleft: '-=100',
swiperight: '+=100'
}
$('#navMenu').bind('swipeleft swiperight',
function(e) {
$('#prbBtnHolder').animate({left:eventType[e.type]});
//alert(e.type);
}
);
//Device Detection
(function() {
var agent = navigator.userAgent.toLowerCase();
var isDevice = agent.match(/android/i);
if (isDevice == 'android') {
//alert(isDevice);
$('*').unbind('mousedown').unbind('mouseout').unbind('mousemove').unbind('mouseup');
}
})();
私のコードです。
UPDATE
私は.ready()
方法の外にタッチハンドラを配置することにより、ローカルで問題を解決するために管理。しかし、私はサーバー上でページを実行すると、ダブルトリガが再び発生します。今私は完全に困惑している。 2つの同一のページ(文字通り同一)は、ローカルとサーバー上で異なる動作をするのはなぜですか?
'i'フラグは大文字と小文字を区別しないので、正規表現で' i'フラグを使うと、 'toLowerCase()'を使う必要はありません。 – Jasper
どのタッチイベントが2回トリガーされていますか?投稿されたコードのタッチイベントは、 'swipeleft' /' swiperight'イベントハンドラだけです。私はここでコードをテストしました:http://jsfiddle.net/B8PQn/1/私の携帯電話(Android 2.3)で、スワイプのイベントは期待通りに機能しました。 – Jasper
@ Jasper - これはコードの単なる例です。ページ上のすべてのイベントが2回トリガーされていますが、理由は不明です。多分、jquery mobileと何らかのオーバーラップがありますか? – dopatraman