我有以下代码,它只允许在窗口宽度超过760像素时执行一组jQuery悬停函数。
jQuery(document).ready(function(){
function checkWidth(){
var windowWidth= jQuery(window).width();
if(windowWidth >= 760){
jQuery('.wsite-menu-item-wrap').hover(
function(){
jQuery(this).children(".wsite-menu-wrap").addClass('hover');
}, function(){
jQuery(this).children(".wsite-menu-wrap").removeClass('hover');
});//End Hover
jQuery('.wsite-menu-subitem-wrap').hover(
function(){
jQuery(this).children(".wsite-menu-wrap").addClass('subitem-hover');
}, function(){
jQuery(this).children(".wsite-menu-wrap").removeClass('subitem-hover');
});//End Hover
}//EndIf
}
checkWidth();
jQuery(window).resize(checkWidth);
});
我遇到了一个有趣的错误:当我以低于760px的宽度加载页面并调整到760以上时,它按计划运行:悬停代码不在760下执行并开始在上面执行760.但是,如果我以相反的方式进行加载760以上,然后调整到一个较小的窗口,即使在我将窗口大小调整到760以下之后,悬停代码仍会继续执行。任何关于为什么会这样做的想法发生了什么?谢谢。
答案 0 :(得分:0)
当你向后做时,语句
if(windowWidth >= 760)
在它出现之前,将是假的..对吗?所以它添加了类和所有内容,所以你需要和else语句来一个例子来改变类
如果它一开始很小,那么该判断将是错误的,如果你重新判断它,那么该判断将是真的并且类将被更改