jquery JavaScript不能在移动的上工作,但可以在桌面上工作

uelo1irk  于 2023-04-05  发布在  jQuery
关注(0)|答案(5)|浏览(468)

这在桌面浏览器上有效,但在我的iOS移动的上不行。我尝试添加'touchstart',并查看this post's solution以检查其他人如何让它工作,但它仍然不起作用。对于其他选项有任何建议吗?我也尝试添加e.preventDefault()-并将e添加到function(),但效果不佳。
我试过:

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

编辑:看起来可能还有其他事情发生,我将代码更改为尽可能通用,它不会在iOS上触发事件,而是在我的Chrome模拟器中工作:

$(document).on('click touchstart', 'body', function() {
      alert('hi');
    });

其他更新:
我在我的script.js文件中添加了以下代码:

$('body').css('display', 'none');

正如预期的那样,在我的桌面浏览器上,无论是本地浏览器还是heroku浏览器,屏幕都是空白的,但当我在移动的上测试时,屏幕却不是空白的,看起来像是js不能正常工作。
随附图片:
第一节第一节第一节第一节第一次

wsxa1bj1

wsxa1bj11#

答:它在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);
    });
qvsjd97n

qvsjd97n2#

您有两种选择:
1.重置移动的浏览器的历史记录,因为浏览器的缓存读取旧源。
1.在桌面中更改源文件的名称,然后再次刷新页面。

yhived7q

yhived7q3#

这应该会对您有所帮助。将事件绑定到文档,而不是将其绑定到body元素。

$(document).on('click touchstart', '.myContainer', function() {

      $(this).toggleClass('myContainer-unselected').toggleClass('myContainer-selected');
    });

还可以尝试将以下样式添加到myContainer类

cursor : pointer;
fnx2tebb

fnx2tebb4#

e.preventDefault();放在你的javascript函数中。

w46czmvw

w46czmvw5#

要测试JS是否正在加载,请在页面上加载的任何JS文件中添加一个简单的alert('hello');作为第一行。如果没有显示警报,请检查浏览器的设置,以查看该网站是否启用了JS。
如果出现警报,页面仍然没有加载预期的JS,则很可能是您的代码中的一个或多个功能在该浏览器/设备上不受支持。包含所有功能列表的兼容性函数可以提供有用的反馈。一些功能在window下,其他功能在navigator下。对于实际的移动的设备或控制台输出不可见的任何其他环境,用alert替换console.warnconsole.log
在我自己的用例中,SharedWorker与Windows上的Chrome兼容,但与Android上的Chrome不兼容。一旦我禁用了new SharedWorker()的所有示例,JS在桌面和移动的上都按预期加载。
注意:由于沙盒规则,检查SO代码片段中的功能可能无法工作。

const ns = {};

ns.compat = () => {
  let ok = true;

  if (window) {
    for (let i of ['Worker', 'SharedWorker', 'getSelection', 'indexedDB', 'localStorage', 'IntersectionObserver', 'MutationObserver', 'sessionStorage', 'fetch', 'IDBTransaction', 'IDBKeyRange', 'IDBDatabase', 'WebSocket']) {
      if (window[i])
        continue;
      console.warn('Missing window feature: ', i);
      ok = false;
    }
  }

  if (navigator) {
    for (let i of ['serviceWorker', 'userAgentData', 'mediaDevices', 'geolocation', 'hid', 'onLine', 'language', 'permissions', 'clipboard']) {
      if (navigator[i])
        continue;
      console.warn('Missing navigator feature: ', i);
      ok = false;
    }
  }

  ok && console.log('All features: ok');
}

ns.compat();

相关问题