2010-08-20 27 views
12

tôi đang sử dụng jquery và sự kiện touchmove nhưng mã không hiển thị bất cứ điều gì trong #infoiphone của không làm việc

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

Trả lời

35

Hãy thử sử dụng e.originalEvent.touches:

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

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

Tôi chạy vào một vấn đề tương tự khi tôi đã chơi xung quanh với các sự kiện liên lạc và jquery: http://xavi.co/articles/trouble-with-touch-events-jquery

+0

Làm việc trên iphone nhưng không hoạt động trên iPad. Bất kỳ ý tưởng? – coure2011

+1

hmm, chỉ cần thử trên ipad của tôi ... mọi thứ dường như hoạt động như mong đợi. Bạn có thấy bất kỳ lỗi nào không? Bạn cũng đã thử kiểm tra 'e.originalEvent.changedTouches [0]'? – Xavi

+0

Tôi đang cố gắng phát hiện di chuyển từ sự kiện touchmove, nhưng trong trang safariY, tọa độ screenY của sự kiện touchmove không hoạt động đúng cách. - Khi tôi chạm và di chuyển xuống thì giá trị tọa độ (pageY, screenY) dao động, có nghĩa là nó sẽ như 468,473,470,480,477,486,481, Cần nhất quán, tăng hoặc giảm để tôi có thể phát hiện đầu cuộn hoặc cuộn xuống. hãy giúp tôi. –

0

Nó có thể đơn giản như một mis tên DIV id (' #info ') nhưng không thể nói mà không nhìn thấy mọi thứ.

Hãy thử điều này, và xem nếu bạn vẫn nhận được không có đầu ra:

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

(Bạn sẽ cần phải bật gỡ lỗi điều khiển trong MobileSafari)

CẬP NHẬT

Vì vậy, , từ nhận xét của bạn, bạn gặp lỗi: 'e.touches' is not an object

Trong trường hợp đó thử loại này (không jQuery cụ thể):

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

'e.touches' không phải là một đối tượng – coure2011

+0

Tôi đã cập nhật mã của mình. Hãy thử điều đó. Nếu nó hoạt động thì bạn có thể đi từ đó. – donohoe

Các vấn đề liên quan