gpt4 book ai didi

ios - 停止 jQuery Mobile 滑动事件双冒泡

转载 作者:可可西里 更新时间:2023-11-01 03:27:51 24 4
gpt4 key购买 nike

我在 iPad Safari 上安装了 jQuery Mobile,出于某种原因,触摸滑动事件触发了两次。

人们在过去的一年中最近就在本周报告了同样的问题,但我找不到如何在不修改 jQuery Mobile 的情况下修复双重事件的解释,我不想那样做。 Thread on jQuery forums

滑动处理程序的以下元素绑定(bind)都具有相同的错误双事件结果,其中每次滑动都会调用两次警报。

应该如何绑定(bind) jQuery Mobile 触摸事件以避免双重冒泡?

// 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!');
});

最佳答案

event.stopImmediatePropagation()是技巧,它不同于 stopPropagation()。确保 jQuery on()在 document.ready 中调用方法似乎有所帮助。我能够使用任何元素选择器来绑定(bind)事件,包括使用向上滑动和从 here 向下滑动

$(document).ready(function(){    
$(document).on('swipeleft swiperight swipedown swipeup',function(event, data){
event.stopImmediatePropagation();
console.log('(document).Stop prop: You just ' + event.type + 'ed!');
});
});

关于ios - 停止 jQuery Mobile 滑动事件双冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com