[英]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;
您有兩個選擇:
把e.preventDefault();
在您的 javascript 函數中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.