这在桌面浏览器上有效,但在我的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不能正常工作。
随附图片:
第一节第一节第一节第一节第一次
5条答案
按热度按时间wsxa1bj11#
答:它在iOS Safari上不工作的原因是因为在我的js页面中,我使用的是ES6,特别是“let”,[目前不支持][1]。更改为ES5,问题消失了。
qvsjd97n2#
您有两种选择:
1.重置移动的浏览器的历史记录,因为浏览器的缓存读取旧源。
1.在桌面中更改源文件的名称,然后再次刷新页面。
yhived7q3#
这应该会对您有所帮助。将事件绑定到文档,而不是将其绑定到body元素。
还可以尝试将以下样式添加到myContainer类
fnx2tebb4#
把
e.preventDefault();
放在你的javascript函数中。w46czmvw5#
要测试JS是否正在加载,请在页面上加载的任何JS文件中添加一个简单的
alert('hello');
作为第一行。如果没有显示警报,请检查浏览器的设置,以查看该网站是否启用了JS。如果出现警报,页面仍然没有加载预期的JS,则很可能是您的代码中的一个或多个功能在该浏览器/设备上不受支持。包含所有功能列表的兼容性函数可以提供有用的反馈。一些功能在
window
下,其他功能在navigator
下。对于实际的移动的设备或控制台输出不可见的任何其他环境,用alert
替换console.warn
和console.log
。在我自己的用例中,
SharedWorker
与Windows上的Chrome兼容,但与Android上的Chrome不兼容。一旦我禁用了new SharedWorker()
的所有示例,JS在桌面和移动的上都按预期加载。注意:由于沙盒规则,检查SO代码片段中的功能可能无法工作。