Javascript无法在移动设备上运行,但适用于桌面设备

Ron*_*n I 3 javascript jquery

这适用于桌面浏览器,但不适用于我的iOS手机.我尝试添加'touchstart'并查看这篇文章的解决方案,以检查其他人如何使其工作,但它仍然无效.有关其他选项的任何建议吗?我也尝试添加e.preventDefault()- 并将e添加到function()中,但是这样也没有用.

我试过了:

 $('body').on('click touchstart', '.myContainer', function() {
     $(this).toggleClass('myContainer-unselected').toggleClass('myContainer-selected');
 });
Run Code Online (Sandbox Code Playgroud)

编辑:似乎可能还有其他内容,我将代码更改为尽可能通用,并且它不是在iOS上触发事件,而是在我的chrome模拟器中工作:

$(document).on('click touchstart', 'body', function() {
      alert('hi');
    });
Run Code Online (Sandbox Code Playgroud)

其他更新:

我已将以下代码添加到我的script.js文件中:

$('body').css('display', 'none');
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我的桌面浏览器上的屏幕在本地和heroku上都是空白的,但是当我在移动设备上测试时,屏幕不是空白的.看起来js工作不正常.

附图:

在此输入图像描述在此输入图像描述

Ron*_*n I 5

答:它不适用于iOS Safari的原因是因为在我的js页面中我使用的是ES6,特别是'let',这是[目前不支持] [1].改为ES5,问题消失了.

$('body').on('click', '.dashboard_leftNav_category a', function() {
      var link = $(this).attr('showSection'); //changed from let link
      var show = $('[section="'+link+'"]');
      $('[section]').hide();
      $('body').find(show).fadeIn();
      $('html,body').scrollTop(0);
    });
Run Code Online (Sandbox Code Playgroud)


Ahm*_*imi 5

您有两个选择:

  1. 重置移动浏览器的历史记录,因为浏览器的缓存会读取旧源。
  2. 更改桌面中源文件的名称并再次刷新页面。