所以我有这个脚本来检测窗口宽度,并在满足if语句时执行某些操作。 是的,如果"宽度"小于980,但如果我调整窗口大小超过180,它仍然运行我不想要的指令。 我检查了"宽度"使用$(' #jqWidth')。html(width);如果值随窗口而变化 变化和变化。它似乎:
所以基本上我想在宽度为980或更大时,在if语句中禁用slideUp()和slideDown()或$(window).scroll函数。
谢谢!
function jqUpdateSize(){
// Get the width of the viewport
var width = $(window).width();
if(width < 980){
$(".slideToggle").css({display:'none'});
$(window).scroll(function() {
if($(window).scrollTop() > 535) {
$(".header").slideUp("slow");
}
if($(window).scrollTop() < 535) {
$(".header").slideDown("slow");
}
});
}
$('#jqWidth').html(width); //for testing purposes if width changes.
}
$(document).ready(jqUpdateSize); // When the page first loads
$(window).resize(jqUpdateSize); // When the browser changes size
修改
function jqUpdateSize(){
// Get the width of the viewport
var width = $(window).width();
if(width < 980){
$(".slideToggle").css({display:'none'});
$(window).scroll(function() {
if($(window).scrollTop() > 535) {
$(".header").slideUp("slow");
}
if($(window).scrollTop() < 535) {
$(".header").slideDown("slow");
}
});
}
$('#jqWidth').html(width); //for testing purposes if width changes.
}else{
$(window).unbind('scroll');
}
$(document).ready(function(){
jqUpdateSize();
});
$(window).resize(function(){
jqUpdateSize();
});
添加&#34;否则&#34;在声明上,它工作。感谢@adeneo的提示和@miushock
答案 0 :(得分:0)
处理程序没有正确链接到事件,尝试将其更改为
$(document).ready(function(){
jqUpdateSize();
});
$(window).resize(function(){
jqUpdateSize();
});
我想补充一点这个答案,
以函数文字的形式定义处理程序方法也应该起作用
var jqUpdateSize = function () {...}
我不确定它是jquery还是浏览器实现,但函数文字似乎被视为更好的对象