如何在 iPad 上的 jquery 外部单击关闭菜单

Posted

技术标签:

【中文标题】如何在 iPad 上的 jquery 外部单击关闭菜单【英文标题】:how to close the menu with a Click outside in jquery on iPad 【发布时间】:2014-03-27 10:48:16 【问题描述】:

当您在 iPad 上触摸菜单时,我得到了一个可以正确打开和正确关闭的菜单。没关系,但是当您触摸菜单外时,我也想关闭菜单。当你触摸图片和链接时它会起作用,但当你触摸其他任何地方时它就不起作用了。

这是我的代码:

html

<nav onclick="" class="acconicon">

<nav class="accon">


 <figure class="acmlogo"></figure>


<h5 class="acconh5">Hovedmenu</h5>      
<ul class="sbm3">
    <a href="index.php"><li class="acfront">Forside </li></a>
    <a href="news.php"><li class="acnews">Nyheder </li></a>
    <a href="artists.php"><li class="acartists">Artister</li></a>
    <a href="releases.php"><li class="acreleases">Udgivelser</li></a>
    <a href="live.php"><li class="aclive">Live</li></a>
    <a href="video.php"><li class="acvideo">Videoer </li></a>
    <a href="interaction.php"><li class="accomp">Konkurrencer</li></a>
    <a href="remix.php"><li class="acremix">Remix</li></a>
</ul>


</nav>

</nav>

脚本:

    $('html').click(function() 
   $('.accon').hide(); 
);

$('.acconicon').click(function(event)
     event.stopPropagation();
);

$('.acconicon').click(function(event)
     $('.accon').toggle();
);

【问题讨论】:

我是新手,如何使用 onblur? 【参考方案1】:

我认为你只需要使用JQuery 的非选择器。我创建了一个您应该尝试的简单代码。

$('*:not(.acconh5,sbm3,sbm3 > a)').click(function() 
    $('.accon').hide(); 
);

【讨论】:

感谢快速回答,但它没有用:-(!结果是在我使用你的代码之后你根本无法打开菜单.. 我的代码的选择器仅用于关闭菜单,当此功能运行时您显然无法打开它,您必须在非选择器上使用您用于打开菜单的元素该元素将关闭菜单。 喜欢删除我自己的 jquery 代码吗?那么空的 onclick="" 呢? 对不起,如果很难理解,我会尽力解释得更好。 JQuery 选择器中的* 用于选择所有元素,:not() 用于添加元素异常。在非选择器中,我只在菜单的元素上,这将导致如果您单击不会隐藏的任何菜单元素,但如果您单击 html 的任何其他元素,则菜单将隐藏。因此,如果菜单被该选择器隐藏,则永远不会显示,因为您必须在用于在非异常选择器中显示它的元素处显示它 我不明白 :S 。我宁愿听我应该做什么,也不愿尝试理解它:)

以上是关于如何在 iPad 上的 jquery 外部单击关闭菜单的主要内容,如果未能解决你的问题,请参考以下文章

jQuery superfish 菜单/悬停在 iPad、iPhone 等

jQuery:单击外部元素以“关闭”使用toggleClass出现的菜单

如何通过单击菜单外部来关闭移动菜单

text 使用jQuery在其外部单击关闭下拉列表

text 使用jQuery在其外部单击关闭下拉列表

如何使用 jQuery 在 iPad 上避免“双重触摸”?