if语句中的一部分JavaScript代码运行,而同一块中的其余代码不运行';我不能执行。我错过了什么?

if语句中的一部分JavaScript代码运行,而同一块中的其余代码不运行';我不能执行。我错过了什么?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,我有一个带有位置的网页:固定的标题元素,由围绕标题元素的容器组成-一个徽标、导航和一个按钮/超链接。默认情况下,对象的排列方式如下: [<div class="header-left">][<div class="header-nav">][<div class="header-right">] 奇怪的是,alert()会在距离达到0时被调用,但标题元素不会立即折叠-视口必须进一步收缩。我真的不明白是什么导致了这种行为 无论如何,这里有所有相关的代码。

因此,我有一个带有
位置的网页:固定的
标题元素,由围绕标题元素的容器组成-一个徽标、导航和一个按钮/超链接。默认情况下,对象的排列方式如下:

[<div class="header-left">][<div class="header-nav">][<div class="header-right">]
奇怪的是,
alert()
会在距离达到0时被调用,但标题元素不会立即折叠-视口必须进一步收缩。我真的不明白是什么导致了这种行为

无论如何,这里有所有相关的代码。非常感谢你花时间帮我做这件事

//index.js
//document.ready函数包装器。
//调整大小和方向(移动)事件的事件侦听器
//以确定是否应折叠标题菜单
$(文档).ready(函数(){
//checkHeader函数:每次调整视口大小时调用
检查标题($(窗口).width());
$(窗口).on(“调整大小”,函数(){
检查标题($(窗口).width());
});
$(窗口).on(“方向更改”,函数(){
检查标题($(窗口).width());
});
});
var相交//屏幕/收割台左侧到收割台导航元件右侧的距离
var距离//相交点和收割台右侧左侧之间的距离
//checkHeader:包含用于检查是否存在标头元素的代码
//应折叠或解开。
功能检查标题(宽度){
//检查页眉右侧元素和
//标题导航元素是一个{
保证金:0 5px 0 5px;
文字装饰:无;
过渡:颜色300毫秒;
颜色:白色;
}
.标题导航>a:悬停{
颜色:rgba(246,22,96,1);
}
.header right>a{
过渡:颜色300毫秒;
颜色:rgba(5,85,85,1);
文字装饰:无;
}
.联系人:悬停{
颜色:白色;
}
.订单跟踪{
填充物:5px;
边框:rgba(5,85,85,1)3倍实心;
边界半径:10px;
背景色:白色;
}
.订单跟踪:悬停{
过渡:背景色500毫秒;
背景色:rgba(230、230、230、1);
}
.崩溃{
位置:相对位置;
顶部:6px;
显示:无;
浮动:对;
填充:0 3px 0 3px;
利润率:0.20px 0.0;
过渡:背景色100毫秒轻松,
边境500米宽;
边框:rgba(0,0,0,0)2px实体;
边界半径:7px;
}
.折叠:悬停{
背景色:rgba(2,99,99,1);
边框:白色2px实心;
边界半径:7px;
}
旋转木马{
显示:无;
填充顶部:48px;
}
.清楚{
明确:两者皆有;
}

省略

如果没有一种简单的方法来测试代码,很难为您排除故障,但我强烈怀疑这里发生的事情是
distance=intersect
都是
true
,因此第一个
if
执行,然后第二个执行,将一切恢复正常艾尔

如果这确实是问题所在,您可以使用
else

if (distance <= 10) {
    // ...
}
else if ($(window).width() >= intersect) {
    // ...
}
这将允许您在浏览器窗口小于某个宽度时将特定样式应用于页面


这将允许您用这一小块CSS替换这一大块JavaScript,然后您可以专注于调整布局。

如果
distance
小于11但
window.width()
大于
intersect
?下一个
if
语句将重新设置样式。另外,不要使用
alert
进行调试。使用
控制台.log
。它不会阻塞您的代码,并且很容易查看历史记录。@问题是,我试图通过分配一个变量
isCollapsed=false来防止这种情况发生默认情况下,然后根据初始
if
语句的结果对该值进行变形-但变量从未改变其状态。这就像在
if
块中只选择部分代码一样运行。@DarkFalcon你可能认为我更清楚。谢谢dude:'@JonathanBrooks你放了
console.log()
在那一秒的
if
语句中,只是为了确保它不会开火?哦,我的天啊。这真是有史以来最神奇的事情。所有的javascript都是完全不必要的!!非常感谢你。
if (intersect == undefined) intersect = $(".header-nav").outerWidth(true) + parseInt($(".header-nav").position().left, 10);
    distance = parseInt($(".header-right").position().left, 10) - intersect;

if (distance <= 10) {
    if (showAlert == true) alert("distance definitely less than 10");
    showAlert = false;
    $(".header-right").css( {"display" : "none"} );
    $(".header-nav").css( {"display" : "none"} );
    $(".collapsed").css( {"display" : "inline-block"} );
}
if (distance <= 10) {
    // ...
}
else if ($(window).width() >= intersect) {
    // ...
}