Có cách nào để liên kết với sự kiện nhấn đúp (trong một dòng mã) cho safari di động không? Hoặc, giải pháp thay thế là triển khai nó chặn hai sự kiện một lần xảy ra trong một thời gian ngắn nhất định (ví dụ: http://appcropolis.com/blog/implementing-doubletap-on-iphones-and-ipads/)?Nhấn đúp vào safari di động
Trả lời
Câu trả lời ngắn: bạn phải triển khai thông qua hai lần nhấp.
câu trả lời thực tế: Đây là một thực hiện jQuery-miễn nhấp đúp cho safari di động mà chỉ cần một dòng mã (để cho phép dblclick sự kiện):
Ngoài ra, bạn có thể cần phải disable mobile Safari's default zoom với thẻ meta này:
<meta name="viewport" content="width=device-width,user-scalable=no" />
Override dblclick
sự kiện và sử dụng bind
, live
, on
, delegate
như đối với bất kỳ sự kiện khác:
jQuery.event.special.dblclick = {
setup: function(data, namespaces) {
var elem = this,
$elem = jQuery(elem);
$elem.bind('touchend.dblclick', jQuery.event.special.dblclick.handler);
},
teardown: function(namespaces) {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('touchend.dblclick');
},
handler: function(event) {
var elem = event.target,
$elem = jQuery(elem),
lastTouch = $elem.data('lastTouch') || 0,
now = new Date().getTime();
var delta = now - lastTouch;
if(delta > 20 && delta<500){
$elem.data('lastTouch', 0);
$elem.trigger('dblclick');
}else
$elem.data('lastTouch', now);
}
};
hoạt động trên safari nhưng không hoạt động trong chrome dành cho máy tính để bàn – alpere
Nếu bạn muốn có tác nhấp đúp chuột vào cả trên trình duyệt và nền tảng iOS, bạn nên có đoạn mã sau:
jQuery.event.special.dblclick = {
setup: function(data, namespaces) {
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0 || agent.indexOf('ipod') >= 0) {
var elem = this,
$elem = jQuery(elem);
$elem.bind('touchend.dblclick', jQuery.event.special.dblclick.handler);
} else {
var elem = this,
$elem = jQuery(elem);
$elem.bind('click.dblclick', jQuery.event.special.dblclick.handler);
}
},
teardown: function(namespaces) {
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0 || agent.indexOf('ipod') >= 0) {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('touchend.dblclick');
} else {
var elem = this,
$elem = jQuery(elem);
$elem.unbind('click.dblclick', jQuery.event.special.dblclick.handler);
}
},
handler: function(event) {
var elem = event.target,
$elem = jQuery(elem),
lastTouch = $elem.data('lastTouch') || 0,
now = new Date().getTime();
var delta = now - lastTouch;
if (delta > 20 && delta < 500) {
$elem.data('lastTouch', 0);
$elem.trigger('dblclick');
} else {
$elem.data('lastTouch', now);
}
}
};
Hãy thử nó ở đây:
Mã tuyệt vời. Làm việc hoàn hảo. –
- 1. Nhấn đúp vào UITableViewCell
- 2. iOS - Nhấn đúp vào uibutton
- 3. Ngăn chặn popToRootViewController tự động khi nhấn đúp vào UITabBarController
- 4. đúp nhấn trong python
- 5. Di chuyển động của Safari Safari không hoạt động
- 6. MKAnnotationView biến mất trên swipe và nhấn đúp vào zoom
- 7. Nhấn đúp và nhấp vào xung đột (jQuery và Hammer.js)
- 8. đúp nhấn trong cakephp 2.0
- 9. Nhấn đúp vào tab của Eclipse trên Visual Studio?
- 10. Autoplay âm thanh trên safari di động
- 11. Gửi biểu mẫu bàn phím di động Safari
- 12. Nút di động jQuery vẫn được nhấn
- 13. setTimeout không hoạt động trên điện thoại di động safari
- 14. NSImageView nhấp đúp vào hành động
- 15. lập trình tập trung vào lĩnh vực đầu vào tiếp theo trong safari di động
- 16. Javascript ngừng thực thi trong khung nội tuyến sau khi nhấn nút quay lại trong safari di động
- 17. Làm cách nào để ngăn chặn hoạt động nhấn đúp mặc định (phóng to, thu nhỏ) trong Mobile Safari trên iOS4?
- 18. Facebook FB.login hoạt động trong Safari, nhưng không phải di động Safari
- 19. Di chuyển tràn đầu vào iOS Safari 8
- 20. Nhấn đúp hoặc hai lần chạm một lần?
- 21. Android: Hai sự kiện khác nhau cho một lần chạm và nhấn và nhấn đúp?
- 22. Mp4 video trong html5 thẻ video không chơi trong chrome di động và safari di động
- 23. Cách thay đổi hướng dẫn talkback của Android cho nhấn đúp và nhấn và giữ
- 24. Làm cách nào để giải quyết việc nhấn đúp vào Vấn đề nút trong Android?
- 25. Vô hiệu hóa thao tác nhấn đúp vào MKMapView (iOS 6)
- 26. IFrame vấn đề chiều cao trên iOS (Safari di động)
- 27. iframe được cắt khi trong div trên safari di động
- 28. iOS Safari di chuyển xuống trang web tự động
- 29. vấn đề nội dung ẩn safari di động thú vị
- 30. Chạm đúp vào UIButton
Tab kép không được sử dụng để thu phóng? Có phải 2 sự kiện nhấn thậm chí được kích hoạt trong trình duyệt không? – Undefined
sự kiện tương tự được sử dụng để thu phóng và tôi muốn ghi đè hành vi cho tình huống cụ thể – BreakPhreak
Xin lỗi nếu tôi không liên quan đến vấn đề của bạn, nhưng nếu bạn hiển thị trang web, bạn có thể chỉ định cài đặt của chế độ xem trong thẻ meta. Bạn có thể thấy điều này trong iwebkit từ đoạn mã. –