Touchstart在手机上发射两次

问题描述:

我在手机菜单上遇到了一些麻烦。起初,我写了这样其上传,并通过Android的镀铬点击功能不工作我的移动设备上检查工作后,在桌面上Touchstart在手机上发射两次

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

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

罚款我的代码,所以我尝试使用touchstart。

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

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

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

我想根据你的问题发生的事情是你的事件正在传播。你可以做的是通过做这样的事情来阻止事件的传播。

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

更多参考这里:

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