在外部点击 IOS 台设备时关闭 Slicknav 菜单
Make Slicknav menu close when outside click on IOS devices
我正在使用 Slicknav 移动菜单脚本:http://slicknav.com/
它运行良好,但我不知道如何在 ios 设备上的菜单外单击时关闭它。当我在桌面和 Android 上测试它时,单击外部时它关闭正常,但在我的 Ipad 上它不起作用。这是当前代码。有什么见解吗?谢谢!
<script src="slicknav.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.menu').slicknav({
label:'',
closeOnClick:true
});
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
});
</script>
<nav>
<ul class="menu">
<li><a href="">Home</a></li>
<li><a href="">Link1</a></li>
<li><a href="">Link2</a></li>
</ul>
</nav>
我记得我创建了我的第一个移动网站,这个问题浪费了我很多时间。 iOS 在单击时存在 :hover
状态的已知问题。
阅读 here - 它应该可以解决您的问题。
在我的网站上,右侧菜单使用 slicknav。多亏了这段代码,当我在 iOS 外面点击时,它关闭得很好。示范:http://www.crealisationweb.fr
替换为:
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
有了这个 :
$("div, html").on("click", function (event) {
if(!$(event.target).hasClass(".menu a") &&
!$(event.target).hasClass("ul.slicknav_nav li a") &&
!$(event.target).hasClass("slicknav_menutxt") &&
!$(event.target).hasClass("slicknav_icon") &&
!$(event.target).hasClass("slicknav_icon-bar") &&
!$(event.target).hasClass("slicknav_btn")) {
$(".menu").slicknav('close');
}
});
我用过类似的东西
$(window).on("touchstart", function(e) {
var container = $("#menu");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
$('#menu').slicknav('close');
}
});
我正在使用 Slicknav 移动菜单脚本:http://slicknav.com/
它运行良好,但我不知道如何在 ios 设备上的菜单外单击时关闭它。当我在桌面和 Android 上测试它时,单击外部时它关闭正常,但在我的 Ipad 上它不起作用。这是当前代码。有什么见解吗?谢谢!
<script src="slicknav.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.menu').slicknav({
label:'',
closeOnClick:true
});
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
});
</script>
<nav>
<ul class="menu">
<li><a href="">Home</a></li>
<li><a href="">Link1</a></li>
<li><a href="">Link2</a></li>
</ul>
</nav>
我记得我创建了我的第一个移动网站,这个问题浪费了我很多时间。 iOS 在单击时存在 :hover
状态的已知问题。
阅读 here - 它应该可以解决您的问题。
在我的网站上,右侧菜单使用 slicknav。多亏了这段代码,当我在 iOS 外面点击时,它关闭得很好。示范:http://www.crealisationweb.fr
替换为:
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
有了这个 :
$("div, html").on("click", function (event) {
if(!$(event.target).hasClass(".menu a") &&
!$(event.target).hasClass("ul.slicknav_nav li a") &&
!$(event.target).hasClass("slicknav_menutxt") &&
!$(event.target).hasClass("slicknav_icon") &&
!$(event.target).hasClass("slicknav_icon-bar") &&
!$(event.target).hasClass("slicknav_btn")) {
$(".menu").slicknav('close');
}
});
我用过类似的东西
$(window).on("touchstart", function(e) {
var container = $("#menu");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
$('#menu').slicknav('close');
}
});