我有以下代码:
$(document).on('click touch', function(e) {
var nav = $(e.target).closest('.nav-js-trigger');
var hidden = $(e.target).closest('.show-nav')
if ( nav.length > 0 ) {
$('.show-nav').not( nav.next().toggleClass('show-nav') ).removeClass('show-nav');
} else if ( hidden.length === 0 ) {
$('.show-nav').removeClass('show-nav');
}
});
如果用户点击菜单div,它会隐藏菜单div。为了测试这个:
div应该被隐藏。
问题是这在iPad上不起作用。为什么呢?
这是FIDDLE。
我添加了click touch
,并尝试了touchend
和touchstart
。
答案 0 :(得分:2)
收到消息:
评论只能编辑5分钟
所以我将其作为答案发布。
touchend
,touch
事件不存在。也许你的测试因浏览器缓存而失败了?document.documentElement
,document.body
和/或window
上? 尝试使用vanilla JavaScript like suggested by Apple:
document.documentElement.addEventListener("touchend", function(e){ alert('hello world'); }, false);