2014-10-06 13 views
6

một sự kiện touchstart đơn giản sẽ làm việc, nếu bạn sử dụng cú pháp sau: http://jsfiddle.net/rwdu4hb9/jquery touchstart không làm việc trên tài liệu

$(function(){ 
    $('.test').on('touchstart', function(){ 
     alert("Clicked"); 
    }); 
}); 

Nhưng nếu bạn muốn thêm sự kiện của bạn cho tất cả các yếu tố đến với $(document).on(..) như ở đây: http://jsfiddle.net/rwdu4hb9/1/

$(function(){ 
    $(document).on('touchstart', '.test', function(){ 
     alert("Clicked"); 
    }); 
}); 

Sự kiện sẽ không được kích hoạt. Có gì sai với cuộc gọi này?

Thử nghiệm trên iPad với iOS 8.0.2

+0

không có gì sai với mã, nơi nào bạn kiểm tra nó? – SSA

+0

iPad 3 với iOS 8.0.2 – user3631654

Trả lời

1

Ra khỏi tò mò, là có bất kỳ lý do bạn đang tránh sử dụng click sự kiện thay vì touchstart? Nói chung, các trình duyệt di động sẽ xử lý click dưới dạng sự kiện 'chạm'. Tôi đã gặp rắc rối trong quá khứ với các lần chạm trên các thiết bị khác nhau (được giải quyết w/modernizr)

Ít nhất, tôi sẽ liên kết cả hai sự kiện (clicktouchstart), sẽ xử lý cả thiết bị di động và máy tính để bàn (cập nhật fiddle bạn - http://jsfiddle.net/srdkgL7o/)

$(function(){ 
    $(document).on('touchstart click', '.test', function(e){ 
     e.stopPropagation(); //stops 'ghost clicks' (double clicking) 
     alert("Clicked"); 
    }); 
}); 
Các vấn đề liên quan