gpt4 book ai didi

javascript - 不知道为什么触摸事件触发两次

转载 作者:行者123 更新时间:2023-12-01 01:54:28 27 4
gpt4 key购买 nike

我正在使用 Jquery Mobile,并且我的触摸事件被触发两次。起初我认为这可能是鼠标事件和触摸事件之间的重叠,但我尝试在平板电脑/智能手机上取消绑定(bind)鼠标事件,但事件仍然被触发两次。

这是我的代码

//Tablet Features
var eventType = {
swipeleft: '-=100',
swiperight: '+=100'
}
$('#navMenu').bind('swipeleft swiperight',
function(e) {
$('#prbBtnHolder').animate({left:eventType[e.type]});
//alert(e.type);
}
);

//Device Detection
(function () {
var agent = navigator.userAgent.toLowerCase();
var isDevice = agent.match(/android/i);

if (isDevice == 'android') {
//alert(isDevice);
$('*').unbind('mousedown').unbind('mouseout').unbind('mousemove').unbind('mouseup');
}
})();

我已经尝试解决这个问题有一段时间了,如果您有任何想法,请帮忙。

更新

我通过将触摸处理程序放置在 .ready() 方法之外,设法在本地解决了该问题。但是,当我在服务器上运行该页面时,双重触发再次发生。现在我完全被难住了。为什么两个相同的页面(字面上相同)在本地和服务器上的行为不同?

最佳答案

我遇到了同样的问题,并通过一些调整解决了它......我不推荐这个作为确切的解决方案,但我可以让你快速摆脱问题。

我定义了一个全局标志

var bDidPan=true;

并在触发器内写入以下内容:

if (bDidPan) {
bDidPan = false; // IT'S IMPORTANT TO PUT THIS FIRST
//code to execute when triggers
}
else
{
bDidPan = true;
}

这样就成功了。你可以用数字来解决这个问题(对我来说数字效果更好!)

希望对你有帮助!

关于javascript - 不知道为什么触摸事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027698/

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