我在 js 文件中包含以下代码,该代码在所有桌面浏览器上都能正常工作,但在以下平板电脑和手机上则无法正常工作
- 三星 S4(Chrome 和默认浏览器)
- iPhone 4S(chrome 和 safari)
在 ipad air/mini(使用 chrome 和 safari)上运行良好 在 HTC 1(使用 Chrome 和默认)上运行良好
有人对此有什么想法吗? - 设备似乎经常断断续续,这令人沮丧
var clicked = false;
$('header > div > nav > ul > li').first().find('a').on("click", function (e) {
if (clicked === false) {
clicked = true;
return true;
} else {
e.preventDefault();
e.stopPropagation();
return false;
}
});
该代码基本上是在第一次单击后禁用 anchor 链接单击事件(当用户单击它时页面重新加载 - 在 href 中设置),并在浏览器再次呈现页面时重新启用。
代码已经发展到你在上面看到的样子。我最初只是在 else block 中有 e.preventDefault();
,它在桌面测试上运行良好,直到我进入移动设备。
最佳答案
移动浏览器没有点击事件。您需要使用 touchstart 或 touchend。
$(...).on("click touchstart", function (e) {
应该可以解决问题
关于javascript - e.PreventDefault() 和 e.stopPropagation() 不适用于平板电脑和手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27970091/