Jquery 如果窗口大于不工作,则简单

Jquery 如果窗口大于不工作,则简单,jquery,resize,Jquery,Resize,我正在努力解决这个简单的if结构的响应性设计。基本上,它是一个导航元素,从下拉列表切换到浮动列表。在960px范围内调整大小时,下拉菜单不起作用。我当前的代码有问题吗 $(window).load(function(){ var windowWidth = $(window).width(); function checkSize() { if(windowWidth < 960) { quickDrop(); } } function quickDrop(

我正在努力解决这个简单的if结构的响应性设计。基本上,它是一个导航元素,从下拉列表切换到浮动列表。在960px范围内调整大小时,下拉菜单不起作用。我当前的代码有问题吗

$(window).load(function(){
var windowWidth = $(window).width();
function checkSize() {
    if(windowWidth < 960) {
        quickDrop();
    }
}
function quickDrop(){
    $("#quicklinks").hover(function() {
        $("#quicklinks > ul").stop(true,true).slideDown("fast");
        $sitesArrow.css({ WebkitTransform: 'rotate(270deg)'});
        $sitesArrow.css({ '-moz-transform': 'rotate(270deg)'});
    }, function(){
        $("#quicklinks > ul").stop(true,true).slideUp("fast");
        $sitesArrow.css({ WebkitTransform: 'rotate(0deg)'});
        $sitesArrow.css({ '-moz-transform': 'rotate(0deg)'});
    });
}
checkSize();

$(window).resize(function(){
    checkSize();
});
});
$(窗口).load(函数(){
var windowWidth=$(window.width();
函数checkSize(){
如果(窗宽<960){
quickDrop();
}
}
函数quickDrop(){
$(“#快速链接”).hover(函数(){
$(“#quicklinks>ul”).stop(true,true)。slideDown(“fast”);
$sitesArrow.css({webkitttransform:'rotate(270度)});
$sitesArrow.css({'-moz transform':'rotate(270deg)});
},函数(){
$(“#quicklinks>ul”).stop(true,true).slideUp(“fast”);
$sitesArrow.css({webkitttransform:'rotate(0deg)});
$sitesArrow.css({'-moz transform':'rotate(0deg)});
});
}
checkSize();
$(窗口)。调整大小(函数(){
checkSize();
});
});
谢谢大家!


您需要将
var windowWidth=$(window.width()
checkSize()函数中

function checkSize() {
    var windowWidth = $(window).width();
    if(windowWidth < 960) {
        quickDrop();
    }
}
函数checkSize(){
var windowWidth=$(window.width();
如果(窗宽<960){
quickDrop();
}
}

否则
windowWidth
只能在
window.load上获取一个值,而不是每次你请求函数
checkSize()

你能把它放在小提琴上吗?将
if(windowWidth<960)
更改为
if($(window.width()<960)
-您正在运行时设置
windowWidth
变量,因此它不会在每次调用
checkSize()
时都得到更新。这是正确的答案-我只是将此作为问题的注释发布。是的,这确实是朝着好的方向迈出的一步。现在的问题是,当我在/小于960/中“激活”下拉列表并将其重新调整到960px以上时,我的#quicklinks ul就不存在了。只有当较小的菜单(如果窗口宽度<500)悬停时才会发生这种情况。因为您将
ul
隐藏在
#quicklinks
中(通过
slideUp('fast')
)。你的大菜单也在一个
ul
中,所以它也被隐藏了。出于好奇,你为什么要用jQuery来做这件事?通过在CSS中使用媒体查询,您可以更轻松地实现响应性设计,并且浏览器不会在每次有人调整窗口大小时都出现延迟。@MathijsDelva您找到解决方案了吗?