1

タッチ デバイス用の「touchstart」とデスクトップ デバイス用の「click」をバインドするバインドを探しています。

一部のタッチ デバイスで「クリック」をバインドすると、クリックが処理される前に 500 ミリ秒の遅延が発生します。

主要なブラウザーがタッチ ( jQuery TouchClick ) をサポートするようになったため、「typeof window.ontouchstart」を使用してデスクトップからタッチ デバイスを分離することはできなくなりましたが、マウスでのクリックはタッチ イベントをエミュレートしません。

ここで提案されているように、 jQuery Mobileにはこの機能がありますが、jQuery Mobile フレームワークを使用せずに、この機能用に簡素化された jQuery プラグインを探しています。

4

2 に答える 2

1

両方をバインドして、タッチがトリガーされたときに後続のクリック イベントを無視するのはどうですか?

var ignoreClick = false;

function touchOrClick(e){
    if (e.type == 'click'){
        if (ignoreClick){
            ignoreClick = false;
            return;
        }
    } else {
        ignoreClick = true;
    }
    // do stuff
}

node.addEventListener('ontouchstart', touchOrClick, false);
node.addEventListener('onclick', touchOrClick, false);
于 2013-02-26T14:50:28.410 に答える