Jquery .focusout 无法在移动设备上运行(slicknav)
Jquery .focusout not working on mobile(slicknav)
Slicknav 只有在您再次单击菜单按钮时才会关闭。
所以我写了这段代码让它在你点击任何地方时关闭
$(document).ready(function() {
//close menu on lost focus
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
});
当我将 window 变小以进行测试时,这在桌面上有效,但在 phone 上,我必须触摸图像才能关闭它,而不是我只是点击任何地方,就像它一样仅当您触摸某个元素时才记录一次点击。
我可以用其他东西代替 focusout 吗?
我会在 body 上使用普通的点击事件并检查用户点击的内容是否在 slicknav_menu。
$('body').click(function(event) {
if(!$(event.target).closest('.slicknav_menu').length) {
$('.menu').slicknav('close');
}
});
使用
修复
$(document).ready(function() {
$('#whole-page').click(function(event) {
$('.menu').slicknav('close');
});
});
我无法使用正文,因为菜单在正文中,打开后菜单直接关闭。
Slicknav 只有在您再次单击菜单按钮时才会关闭。
所以我写了这段代码让它在你点击任何地方时关闭
$(document).ready(function() {
//close menu on lost focus
$('.slicknav_menu').focusout(function(event){
$('.menu').slicknav('close');
});
});
当我将 window 变小以进行测试时,这在桌面上有效,但在 phone 上,我必须触摸图像才能关闭它,而不是我只是点击任何地方,就像它一样仅当您触摸某个元素时才记录一次点击。
我可以用其他东西代替 focusout 吗?
我会在 body 上使用普通的点击事件并检查用户点击的内容是否在 slicknav_menu。
$('body').click(function(event) {
if(!$(event.target).closest('.slicknav_menu').length) {
$('.menu').slicknav('close');
}
});
使用
修复$(document).ready(function() {
$('#whole-page').click(function(event) {
$('.menu').slicknav('close');
});
});
我无法使用正文,因为菜单在正文中,打开后菜单直接关闭。