iphone的safari touchmove活动无法正常工作

时间:2010-08-20 14:48:28

标签: javascript jquery iphone safari

我正在使用jquery和touchmove事件,但代码在#info

中没有显示任何内容
$('#movieShow').bind('touchmove',function(e){                   
    e.preventDefault();                 
    $('#info').text(e.touches[0].pageX);
});         

2 个答案:

答案 0 :(得分:36)

尝试使用e.originalEvent.touches

$('#movieShow').bind('touchmove',function(e){
    e.preventDefault();

    var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
    console.log(touch.pageX);
});

当我玩触摸事件和jquery时,我遇到了类似的问题:http://xavi.co/articles/trouble-with-touch-events-jquery

答案 1 :(得分:1)

它可能就像错误命名的 DIV id('#info')一样简单,但如果没有看到所有内容就无法分辨。

试试这个,看看你是否仍然没有输出:

$('#movieShow').bind('touchmove',function(e){                   
    e.preventDefault();                 
    console.log(e.touches[0].pageX);
});

(您需要在MobileSafari中启用调试控制台

<强>更新

因此,根据您的评论,您会收到错误消息:'e.touches' is not an object

在这种情况下尝试这个(不是特定于jQuery):

document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);
document.getElementById('movieShow').addEventListener('touchmove',  function(e){
  console.log(e.touches[0].pageX);
},  false);