0

タップでは機能しないdivスライダーがありますが、PCブラウザでは正常に機能しています.onclickイベントを使用したため、機能していないと思います。

しかし、私が追加すると、

$('.sliderImage').live("click touchstart", function (event) {
    alert('click event is ' + event.type);
});  

これはhtmlなので、最初にこのアラートをクリックするとすべてのdivが機能し、divが移動しています...この機能を削除した後、移動は機能しません。要素を touch にバインドする他の方法はありますか。

4

1 に答える 1

1

ジャックが言ったように、バインド方法として「ライブ」ではなく「オン」を使用してください。デバイスがタッチをサポートしているかどうかを検出し、それをバインディングの基礎として使用することを検討してください。一部のデバイスでは、クリックとタッチスタートの両方がトリガーされ、予測できない影響が発生します。

/* Touch event support */
utils.POINTER_EVENT = (function() {
//check if the browser supports touch events
    var supportsTouch = 'createTouch' in document;
    //base our event names on the result...
    var obj = {
        START:  (supportsTouch) ? 'touchstart'  : 'mousedown',
        MOVE:   (supportsTouch) ? 'touchmove'   : 'mousemove',
        END:    (supportsTouch) ? 'touchend'    : 'mouseup',
    getPointerPosition: function(ev) { return { x: (supportsTouch) ? ev.touches[0].pageX : ev.pageX, y: (supportsTouch) ? ev.touches[0].pageY : ev.pageY }; }
    };
    return obj;
})();

次に、utils.POINTER_EVENT にバインドします。

于 2013-06-12T10:55:55.603 に答える