簡體   English   中英

Javascript 不適用於移動設備,但適用於桌面設備

[英]Javascript not working on mobile but works on desktop

這適用於桌面瀏覽器,但不適用於我的 iOS 手機。 我嘗試添加“touchstart”並查看這篇文章的解決方案以檢查其他人是如何讓它工作的,但它仍然無法正常工作。 關於其他選擇的任何建議? 我還嘗試添加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 工作不正常。

附上圖片:

在此處輸入圖片說明 在此處輸入圖片說明

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

這應該對你有幫助。 不是將它綁定到 body 元素,而是將事件綁定到文檔。

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

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

還嘗試更改將以下樣式添加到 myContainer 類

cursor : pointer;

您有兩個選擇:

  1. 重置您的移動瀏覽器的歷史記錄,因為您的瀏覽器緩存讀取舊源。
  2. 更改桌面中源文件的名稱並再次刷新頁面。

e.preventDefault(); 在您的 javascript 函數中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM