0

我有 div 滑块,它不能在水龙头上工作,但在 pc 浏览器上工作正常。它不工作,因为我认为我使用了 onclick 事件。

但是当我添加时,

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

这在 html 中,因此所有 div 在第一次单击时此警报有效并且 div 正在移动...删除此功能后移动不起作用。有没有其他方法可以将元素绑定到 touch 。

4

1 回答 1

1

正如杰克所说,使用“on”而不是“live”作为绑定方法。您可能需要考虑检测设备是否支持触摸并将其用作绑定的基础。某些设备会同时触发 click 和 touchstart ,从而导致不可预知的效果。

/* 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 回答