Javascript 移动设备上的jQuery单击事件

Javascript 移动设备上的jQuery单击事件,javascript,jquery,css,mobile,Javascript,Jquery,Css,Mobile,我对手机上的JQuery点击事件有问题。我搜索了这么多答案,发现了关于在Safari/Chrome等移动浏览器中运行的点击事件的相互矛盾的建议 下面是我的钢笔,它是一个更大项目的一个片段。这是我在5分钟内为这篇文章准备的东西 JS在桌面浏览器上执行,CSS类在桌面浏览器上切换,但在移动浏览器上根本不执行。我错过了什么 谢谢 HTML CSS 尝试.on而不是单击事件 您可以尝试通过检测以下触摸事件来进行事件委派 //是否支持检测触摸 var event= ('ontouchstart' in d

我对手机上的JQuery点击事件有问题。我搜索了这么多答案,发现了关于在Safari/Chrome等移动浏览器中运行的点击事件的相互矛盾的建议

下面是我的钢笔,它是一个更大项目的一个片段。这是我在5分钟内为这篇文章准备的东西

JS在桌面浏览器上执行,CSS类在桌面浏览器上切换,但在移动浏览器上根本不执行。我错过了什么

谢谢

HTML

CSS


尝试.on而不是单击事件


您可以尝试通过检测以下触摸事件来进行事件委派 //是否支持检测触摸

var event= ('ontouchstart' in document.documentElement) ? "touchstart" : "click";
//委派适当的事件

$(".btn-navbar-responsive").on(event, function() {
    $(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});

一个简单的修复方法是添加CSS属性:

cursor: pointer;

请不要链接到代码,有一个语法函数是有原因的。我很抱歉,现在更新。我找到了brah,刚刚编辑了它在做什么和你期望它做什么?您尚未描述问题。您应该调查移动设备的touchstart和touchend事件。不幸的是,这仍然不起作用。它在桌面上运行良好,但在移动Safari上不起作用。
$(".btn-navbar-responsive").on('click', function() {
    $(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
var event= ('ontouchstart' in document.documentElement) ? "touchstart" : "click";
$(".btn-navbar-responsive").on(event, function() {
    $(".navbar-menu").toggleClass("navbar-hidden navbar-visible");
});
cursor: pointer;