Tôi có jQuery Mobile trên iPad Safari và vì một số lý do vuốt sự kiện chạm được kích hoạt hai lần.Dừng sự kiện swipe trên thiết bị di động jQuery đôi bubbling
Mọi người đã báo cáo cùng một vấn đề trong năm qua như tuần này nhưng tôi không thể tìm thấy giải thích về cách khắc phục sự kiện kép mà không sửa đổi jQuery Mobile và tôi không muốn làm điều đó. Thread on jQuery forums
Các liên kết phần tử follwoing cho trình xử lý vuốt đều có kết quả sự kiện kép không chính xác khi cảnh báo được gọi hai lần cho mỗi lần vuốt.
Sự kiện cảm ứng jQuery Mobile sẽ bị ràng buộc như thế nào để tránh bọt kép?
// Test 1: Binding directly to document with delegate()
$(document).delegate(document, 'swipeleft swiperight', function (event) {
alert('You just ' + event.type + 'ed!');
});
// Test 2: Binding to document with on() handler recommended as of 1.7 with and without preventDefault
$(document).on('swipeleft',function(event, data){
event.preventDefault();
alert('You just ' + event.type + 'ed!');
});
// Test 3: Binding to body with on() with and without event.stopPropagation
$('body').on('swipeleft',function(event, data){
event.stopPropagation();
alert('You just ' + event.type + 'ed!');
});
// Test 4: Binding to div by class
$('.container').on('swipeleft',function(event, data){
event.stopPropagation();
alert('You just ' + event.type + 'ed!');
});
tôi đặt nó dưới '$ (document) .bind ('pageinit')' và nó không hoạt động. Tôi đã phải đặt 'event.stopImmediatePropagation();' trong mỗi trình xử lý sự kiện vuốt để làm cho nó hoạt động –
Điều đó có ý nghĩa. Các sự kiện vuốt của bạn sẽ kích hoạt hai lần và cần phải dừng lại bằng 'stopImmediatePropagation()' giống như câu trả lời ở trên. Sự kiện 'pageinit' không phải là bọt kép vì vậy nó không yêu cầu dừng thủ công. 'pageinit' chỉ nên kích hoạt một lần trên mỗi trang nhưng nó lại kích hoạt lại cho mỗi trang được thêm động. –
Điều này dường như đã làm việc tốt hơn so với các giải pháp khác, mặc dù tôi vẫn nhận được một số hành vi screwy trên swiperight ... Android 4.x của tôi đi một chút hạt với một số (ngẫu nhiên?) Trang trước khi nó đất trên một trong những quyền. – cbmtrx