将元素绑定到touchstart并单击

时间:2013-06-12 10:50:06

标签: jquery html tablet

我有div滑块,它不能正常工作但在PC浏览器上工作正常。它无法正常工作,因为我已经使用了onclick事件。

但是当我添加时,

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

这在html所以所有div点击时首先这个警报工作,div正在移动...删除此功能后移动不起作用。是否有任何其他方法来绑定要触摸的元素。

1 个答案:

答案 0 :(得分: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