javascript - e.PreventDefault() 和 e.stopPropagation() 不适用于平板电脑和手机

标签 javascript jquery html

我在 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/

相关文章:

javascript - 如何将定位的正则表达式更改为删除参数的分隔符查询字符串的字符串

jquery - 用 jquery 和 <hr> 标签分割内容并将其放入另一个 div

jquery - 多行替换 jQuery 文本区域

javascript - 在父级悬停时更改 img src

Javascript - 复选框网格?

javascript - JQuery 选项卡 : Can the tabs and content be in different containers?

javascript - 如何使用 tcomb-form-native 将电子邮件验证添加到字段?

javascript - 当同时设置了 id 和 class 时,如何使组件使用特定的 css

html - 为什么我的下拉菜单横向悬停而不是向下列出?

java - 如何将 google api access_token 从java服务器传递到gapi javascript客户端?