2015-01-15 53 views
1

下面我有一个js文件的代码,所有的桌面浏览器工作正常,但没有在以下平板电脑&电话e.PreventDefault()e.stopPropogation()不工作的平板电脑和移动

  • 三星S4(铬01​​默认浏览器)
  • iPhone 4S的(铬&野生动物园)

在iPad空气/迷你(使用铬& Safari浏览器),它工作正常 在HTC 1(使用镀铬&默认)它工作正常

有没有人有任何想法呢? - 它似乎非常装置间歇这是令人沮丧的

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设置),并得到重新启用时,浏览器再次呈现页面。

该代码已发展到你上面看到..我原来只有e.preventDefault();在其他块,在桌面测试工作正常,直到我打到移动设备。

+0

您是否尝试过['。一()'](http://api.jquery.com/one/)?好奇,如果你有同样的问题。 – gilly3 2015-01-15 18:10:06

+0

preventDefault和stopPropagation有什么要求,返回false需要同时处理 – Huangism 2015-01-15 18:57:45

回答

1

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

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

应该做的伎俩