【发布时间】:2019-01-11 12:46:37
【问题描述】:
我有一个打开子菜单的 jquery 脚本,但我需要它在不同的窗口大小下以不同的方式运行。
我通过媒体查询在画布上和画布外使用了一个主菜单。问题是我的打开子菜单的脚本在站点加载时可以正常工作,但是如果您将窗口的大小调整为高于或低于 768px(这是在画布上和画布外菜单之间切换的断点),则脚本不会'没有相应的回应。相反,它会继续以原始窗口大小运行。
如何添加窗口调整大小侦听器,以便在窗口大小调整到 768px 断点以上或以下后正确触发脚本。
感谢您提供的任何帮助。我真的很感激。
这是我的脚本:
$(document).ready(function() {
if (window.matchMedia('(max-width: 767px)').matches)
{
$('.toggle-sub').click(function() {
$(this).children('.menu-sub').slideToggle(200);
$(this).find('i').toggleClass('fa-chevron-up');
});
} else {
$('.toggle-sub').hover(function() {
$(this).children('.menu-sub').slideToggle(200);
$(this).find('i').toggleClass('fa-chevron-up');
$(this).siblings().find('.menu-sub').slideUp(200);
$(this).siblings().find('i').removeClass('fa-chevron-up');
$('html').click(function(e) {
if (e.target != '.menu-sub' && $(e.target).parents('.menu-main').length == 0) {
$('.menu-sub').slideUp(200);
$('.menu-main').find('i').removeClass('fa-chevron-up');
};
});
});
}
});
【问题讨论】:
-
你也可以添加你的html吗?
-
我在下面的 cmets 中有一个 codepen,它显示了我正在使用的带有 html 和 css 的原始脚本。
-
你的预期输出是什么?
-
我希望子菜单在低于或等于 767px 时展开 onclick 并在高于或等于 768px 时展开悬停。这样offcanvas菜单是onliclick,oncanvas菜单是onhover。
标签: jquery