删除 jQuery 屏幕调整功能
Remove jQuery function on screen resize
我创建了一个 jQuery 函数来显示一个 div,它应该只在屏幕尺寸超过 1000 像素时起作用。
该功能可以正常使用,但是当我调整屏幕大小时它不起作用,因为jQuery功能已经加载。所以当我调整屏幕大小时,该功能一直停留在那里。
有没有办法在我调整屏幕大小并且它小于 1000 像素后删除此脚本?
目前脚本在我打开网页并且屏幕已经小于 1000px 时有效,但在我调整屏幕大小时却没有
这就是我现在拥有的。
jQuery(document).ready(function() {
jQuery(window).resize(function() {
if(jQuery(window).width() >= 1000) {
jQuery("#mega-menu-projects").mouseover(
function(){
jQuery("#mega-menu-projects").show();
}
);
jQuery("#mega-menu-projects").mouseout(
function(){
jQuery("#mega-menu-projects").hide();
}
);
}
}).resize();
});
你应该改变你的逻辑。您可以将事件侦听器留在那里,但在检查屏幕尺寸是否不是您想要的尺寸后取消它:
jQuery("#mega-menu-projects").mouseover(function(){
if (jQuery(window).width() < 1000) return;
jQuery("#mega-menu-projects").show();
});
jQuery("#mega-menu-projects").mouseout(function () {
if (jQuery(window).width() < 1000) return;
jQuery("#mega-menu-projects").hide();
});
您可以使用 CSS @media
#mega-menu-projects{
display:none;
}
@media screen and (min-width: 1000px) {
#mega-menu-projects{
display:block;
}
}
使用 jQuery,您可以使用 .off
删除事件侦听器
如果屏幕比您需要的小,添加一个删除 mouseover 和 mouseout 事件的 else 子句就足够简单了。
类似(未测试)
else {
jQuery("#mega-menu-projects").off()
}
也就是说,如果您想要做的只是 add/remove 视觉 open/close 基于屏幕尺寸的悬停功能。使用 media queries.
在 CSS 中你会玩得更开心
您可以使用它 add/remove 基于屏幕尺寸的悬停状态
@media (max-width: 1000px) {
#mega-menu-projects:hover{
...
}
}
我创建了一个 jQuery 函数来显示一个 div,它应该只在屏幕尺寸超过 1000 像素时起作用。
该功能可以正常使用,但是当我调整屏幕大小时它不起作用,因为jQuery功能已经加载。所以当我调整屏幕大小时,该功能一直停留在那里。
有没有办法在我调整屏幕大小并且它小于 1000 像素后删除此脚本?
目前脚本在我打开网页并且屏幕已经小于 1000px 时有效,但在我调整屏幕大小时却没有
这就是我现在拥有的。
jQuery(document).ready(function() {
jQuery(window).resize(function() {
if(jQuery(window).width() >= 1000) {
jQuery("#mega-menu-projects").mouseover(
function(){
jQuery("#mega-menu-projects").show();
}
);
jQuery("#mega-menu-projects").mouseout(
function(){
jQuery("#mega-menu-projects").hide();
}
);
}
}).resize();
});
你应该改变你的逻辑。您可以将事件侦听器留在那里,但在检查屏幕尺寸是否不是您想要的尺寸后取消它:
jQuery("#mega-menu-projects").mouseover(function(){
if (jQuery(window).width() < 1000) return;
jQuery("#mega-menu-projects").show();
});
jQuery("#mega-menu-projects").mouseout(function () {
if (jQuery(window).width() < 1000) return;
jQuery("#mega-menu-projects").hide();
});
您可以使用 CSS @media
#mega-menu-projects{
display:none;
}
@media screen and (min-width: 1000px) {
#mega-menu-projects{
display:block;
}
}
使用 jQuery,您可以使用 .off
删除事件侦听器如果屏幕比您需要的小,添加一个删除 mouseover 和 mouseout 事件的 else 子句就足够简单了。
类似(未测试)
else {
jQuery("#mega-menu-projects").off()
}
也就是说,如果您想要做的只是 add/remove 视觉 open/close 基于屏幕尺寸的悬停功能。使用 media queries.
在 CSS 中你会玩得更开心您可以使用它 add/remove 基于屏幕尺寸的悬停状态
@media (max-width: 1000px) {
#mega-menu-projects:hover{
...
}
}