iPhone上的jQuery toggleclass错误
-
26-10-2019 - |
题
以下代码显示了一个称为的菜单 #wrap-footer
单击时通过滑动 #menu-button
. 。单击页面上的任何地方,除了菜单使其逐回去。
当菜单可见时 #menu-button
在其中添加了一个名为“菜单开放”(用于样式)的类。菜单再次隐藏后,将删除类。
注意,我已经使用了选择器 #wrap-header
, #wrap-pre-footer
, #wrap-content
而不是只是 html
或者 document
由于iPhone无法识别这些。
$(document).ready(function(){
$("#menu-button a").hide();
$('#menu-button').append('Menu');
$('#wrap-header,#wrap-pre-footer,#wrap-content').click(function() {
$('#wrap-footer').slideUp('slow');
$('#menu-button').removeClass('menu-open');
});
$('#menu-button').click(function(event){
event.stopPropagation();
$('#menu-button').toggleClass('menu-open');
$('#wrap-footer').slideToggle('slow');
});
$("#wrap-footer").click(function(e) {
e.stopPropagation();
});
});
在台式机上浏览一切都很好。但是,在iPhone上,Slidetoggle工作正常,但是ToggleClass永远不会删除该类。因此,如果菜单打开,请单击页面(但不是 #menu-button
或者 #wrap-footer
)最小化菜单并删除课程,但请单击 #menu-button
仅将菜单最小化,不会删除课程。
谢谢
解决方案
原来JS很好。真正的问题是CSS悬停课程。在iPhone上,您单击的最后一个元素一直是悬停状态。删除CSS悬停类(我的移动网站版本不需要)修复了此问题。
不隶属于 StackOverflow