e.PreventDefault()& e.stopPropogation()不适用于平板电脑和移动

时间:2015-01-15 18:06:55

标签: javascript jquery html5

我在js文件中有以下代码,该文件适用于所有桌面浏览器,但不适用于以下平板电脑和电话

  • Samsung 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;
        }
    });

代码基本上是在第一次单击后禁用锚链接点击事件(当用户点击它时页面重新加载 - 在href中设置)并在浏览器再次呈现页面时重新启用。

代码已经发展到你上面看到的......我最初在else块中只有e.preventDefault();,在桌面测试中工作正常,直到我点击移动设备。

1 个答案:

答案 0 :(得分:1)

移动浏览器没有点击事件。你需要使用touchstart或touchend。

$(...).on("click touchstart", function (e) {

应该做的伎俩