【问题标题】:jQuery toggle not working on iPhone8 or other iOS devicesjQuery 切换在 iPhone8 或其他 iOS 设备上不起作用
【发布时间】:2018-09-16 03:37:22
【问题描述】:

大家好,我有一个标题,当在小屏幕上显示汉堡菜单时。当我在 PC 或 Android 手机上单击汉堡菜单时,它完全符合我的要求,但当我在 iPhone 8 上的 iOS 上执行此操作时,它什么也没做。我已经在那里设置了一个警报,看看它是否甚至可以识别我的触摸并且它确实使用 $(".myMenu").click(function(){alert("clicked div");}); .但是我尝试了 slideToggle、toggle 和隐藏/显示,但它们都不起作用,它只在 iOS 上存在问题。我正在阅读其他论坛,有人说将其包围在锚标签中,但这不起作用。其他人说我需要将 css 设置为 cursor:pointer 但这不起作用。有人建议清除浏览器上的缓存,但没有奏效。我在 github 上找到了其他 CDN 解决了​​这个问题,但没有奏效。我读到 ajax 存在问题,因此需要将其设置为 false,这在下面的代码中突出显示并且不起作用。我发现的最后一条建议是确保将显示设置为阻止并且不起作用。我使用的 CDN 可能比我需要的多,但此时我只是添加了我认为相关的 CDN,以查看它们是否有任何作用。我已经尽可能多地看了,我不知道还能去哪里。任何帮助是极大的赞赏。

这是我的 jsfiddle......https://jsfiddle.net/62pmq7ju/9/

<div class="header">

<a><div><img src="img/icon.png" alt="" width="40px" height="45px" class="myMenu"/></div></a>
<div class="hiddenMenu"></div>
</div>

.hiddenMenu {
position: fixed;
width: 100%;
background-image: url(img/headerBackground.jpg);
top:45px;
display: block;
cursor: pointer;
}

.myMenu {
position: relative;
float: left;
padding-left: 5px;
display: block;
cursor: pointer;
}

    <script>
    $(document).bind("mobileinit", function () {
    // jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
    // when navigating from a mobile to a non-mobile page), especially when going back, hence disabling it.
    $.extend($.mobile, {
        ajaxEnabled: false
    });
    }); 
    $(".hiddenMenu").hide();
    $(".myMenu").on("click", function(){
       $(".hiddenMenu").toggle(); 
    });
    </script>

jsfiddle 在我的 iOS 设备上的 chrome 或 safari 上不起作用,但在我的 android 设备和 widows 笔记本电脑上却可以。请任何帮助将不胜感激,过去三天我一直在努力解决这个问题,我不知道还能去哪里找。如果我在帖子中遗漏了什么,我深表歉意,让我知道您需要什么。

【问题讨论】:

  • 一个愚蠢的问题......当你把它放在显示块中时你能看到菜单吗?如果事件正在触发,那么它可能是 CSS 问题...
  • 是的,我可以看到。我可以在 iPhone 上看到它,当我触摸它时它会做任何事情。警报有效,但没有别的。它在我的 Android 手机上完美运行
  • 我的意思是菜单...我尝试使用 chrome(在 iPhone 8 模式下)查看菜单,我看到元素正在更改但仍然不可见...

标签: jquery html css toggle responsive


【解决方案1】:

我是这样做的

if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {

    
    $('.head_download').on('click', function(){
$('.f_list_season').removeClass('show');
$(this).addClass('show');
});
}

这是你的例子:

       if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
        $('.header img').on('click', function(){
             $('.hiddenMenu').removeAttr('style');
             $(this).css("display", "none");
                });
         }

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2016-08-11
    • 2012-03-21
    • 1970-01-01
    • 2017-03-06
    • 2015-12-30
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多