我正在使用Jquery Mobile,我的触摸事件被触发了两次。起初我以为可能是鼠标事件和触摸事件之间的重叠,但我尝试在平板电脑/智能手机上解除鼠标事件绑定,这些事件仍然会被触发两次。
以下是我的代码:
以下是我的代码:
//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()
方法外部来在本地解决了该问题。然而,当我在服务器上运行页面时,双重触发再次发生。现在我完全被卡住了。为什么两个完全相同的页面(真的是完全相同)在本地和服务器上表现不同呢?
swipeleft
/swiperight
事件处理程序,您是指这些吗?我在我的手机上(Android 2.3)测试了这段代码:http://jsfiddle.net/B8PQn/1/,滑动事件按预期工作。 - Jasper.trigger()
,也请发布该代码。但是事件处理程序绑定将非常有帮助。 - Jaspervclick
和其他所有虚拟鼠标事件。 - dopatraman