Touchstart在手机上两次开火

时间:2016-11-27 03:27:33

标签: android jquery mobile

我在移动菜单上遇到了一些麻烦。起初我的代码写得像这样在桌面上运行良好

$('#nav-icon3').click(function(){
    $(this).toggleClass('open');
});

$('.menu-item').click(function(){
  $('#nav-icon3').toggleClass('open');
});

通过Android chrome上传和检查我的移动设备后点击功能无效,所以我尝试使用touchstart。

$('#nav-icon3').on('touchstart', function(){
    $(this).toggleClass('open');
});

$('.menu-item').on('click touchstart', function(){
  $('#nav-icon3').toggleClass('open');
});

当触摸menu-item元素时,切换触发两次。无论如何,我可以防止这种情况发生,让它只发射一次?

1 个答案:

答案 0 :(得分:1)

我认为根据您的问题发生的事情是您的活动正在传播。你能做的就是通过做这样的事情来阻止事件传播。

$('.menu-item').on('click touchstart', function(e) {
    e.stopPropagation();
    $('#nav-icon3').toggleClass('open');
});

更多参考资料:

https://api.jquery.com/event.stoppropagation/