这适用于桌面浏览器,但不适用于我的iOS手机。我尝试添加'touchstart'并查看this post's solution来检查其他人是如何工作的,但它仍然无效。有关其他选项的任何建议吗?我也尝试添加 $('body').on('click touchstart', '.myContainer', function() {
$(this).toggleClass('myContainer-unselected').toggleClass('myContainer-selected');
});
- 并将e添加到function()中,但这也不起作用。
我试过了:
$(document).on('click touchstart', 'body', function() {
alert('hi');
});
编辑: 似乎可能还有其他事情发生,我将代码更改为尽可能通用,并且它不是在iOS上触发事件,而是在我的chrome模拟器中工作:
$('body').css('display', 'none');
其他更新:
我已将以下代码添加到我的script.js文件中:
-1
正如预期的那样,我的桌面浏览器上的本地和heroku的屏幕都是空白的,但是当我在移动设备上测试时,屏幕不是空白的。看起来js工作不正常。
附图:
答案 0 :(得分:5)
答案:它不适用于iOS Safari的原因是因为在我的js页面中我使用的是ES6,特别是' let' [目前不支持] [1]。改为ES5,问题就消失了。
{{1}}
答案 1 :(得分:1)
这应该对你有所帮助。而不是将其绑定到body元素,将事件绑定到文档。
$(document).on('click touchstart', '.myContainer', function() {
$(this).toggleClass('myContainer-unselected').toggleClass('myContainer-selected');
});
还尝试更改将以下样式添加到myContainer类
cursor : pointer;
答案 2 :(得分:0)
您有两个选择:
答案 3 :(得分:0)
将e.preventDefault();
放在javascript函数中。