Javascript - touchstart和touchend位置

时间:2015-02-10 13:01:52

标签: javascript html touch

如果触摸元素“#menu”,我想获得touchstart和touchend位置。

我写了这段代码,但事件似乎根本没有触发:

        var lastLoc = 0;

        $(document).on('touchstart', '#menu', function(e) {
            lastLoc = e.originalEvent.touches[0].pageX;
        });

        $(document).on('touchend', '#menu', function(e) {
            var newLoc = e.originalEvent.touches[0].pageX;
            alert("lastLoc = "+lastLoc+", newLoc = "+newLoc);
        });

据我所知,这应该有用。

提前致谢。

3 个答案:

答案 0 :(得分:2)

touchend事件在逻辑上应该只有touch个零点,只有changedTouches

Here's a demo.

function startHandler (e) {
    window.console.log('Start:', e.originalEvent.touches[0].pageX);
}

function endHandler (e) {
    window.console.log('End:', e.originalEvent.changedTouches[0].pageX);
}



$(document).on('touchstart', '#menu', startHandler);
$(document).on('touchend', '#menu', endHandler);

如果您在测试触摸事件时遇到问题,请参阅:Simulating touchstart and touchend events?

答案 1 :(得分:0)

您需要在可触摸的表面(如智能手机或平板电脑)上测试触摸事件。 在Google Chrome中,有一种方法可以模拟此功能。

答案 2 :(得分:0)

对不起您的麻烦,我最终使用了jquery mobile的“swipeleft” 无论如何,谢谢:)