Javascript 为什么';如果';声明不起作用?
除非删除Javascript 为什么';如果';声明不起作用?,javascript,jquery,Javascript,Jquery,除非删除else if语句,否则JavaScript将无法工作。一旦我这样做了,一切都很好,但我真的需要可以用完成的更改,如果。不知道为什么。它所做的是更改某个部分的菜单状态,并定义顶部和底部,而不仅仅是页面的顶部 //MENU COLOR CHANGE $(document).ready(function() { var a = $(".nav-mobile"); var b = $(".brand-box"); var c = $(".menu_item");
else if
语句,否则JavaScript将无法工作。一旦我这样做了,一切都很好,但我真的需要可以用完成的更改,如果
。不知道为什么。它所做的是更改某个部分的菜单状态,并定义顶部和底部,而不仅仅是页面的顶部
//MENU COLOR CHANGE
$(document).ready(function() {
var a = $(".nav-mobile");
var b = $(".brand-box");
var c = $(".menu_item");
var d = $(".facebook-top");
var e = $(".vk-top");
var f = $(".menu-item-facebook");
var g = $(".menu-item-vk");
var h = $(".head-block");
var posup = b.position();
var posdown = h.position();
$(window).scroll(function() {
var windowpos = $(window).scrollTop();
if (windowpos <= posup.top) {
a.removeClass("nav-mobile-black");
c.removeClass("menu-item-black");
d.removeClass("facebook-top-black");
e.removeClass("vk-top-black");
f.removeClass("menu-item-facebook-black");
g.removeClass("menu-item-vk-black");
$(".menu_item").mouseover(function(){
$(this).css({"background-color": "rgba(0, 0, 0, 0.1)"});
});
$(".menu_item").mouseout(function(){
$(this).css({"background-color": "rgba(0, 0, 0, 0.0)"});
});
}
else if (windowpos >= posdown.top) {
a.removeClass("nav-mobile-black");
c.removeClass("menu-item-black");
d.removeClass("facebook-top-black");
e.removeClass("vk-top-black");
f.removeClass("menu-item-facebook-black");
g.removeClass("menu-item-vk-black");
$(".menu_item").mouseover(function(){
$(this).css({"background-color": "rgba(0, 0, 0, 0.1)"});
});
$(".menu_item").mouseout(function(){
$(this).css({"background-color": "rgba(0, 0, 0, 0.0)"});
});
}
else {
a.addClass("nav-mobile-black");
c.addClass("menu-item-black");
d.addClass("facebook-top-black");
e.addClass("vk-top-black");
f.addClass("menu-item-facebook-black");
g.addClass("menu-item-vk-black");
$(".menu_item").mouseover(function(){
$(this).css({"background-color": "rgba(255, 255, 255, 0.15)"});
});
$(".menu_item").mouseout(function(){
$(this).css({"background-color": "rgba(255, 255, 255, 0.0)"});
});
}
});
});
//菜单颜色更改
$(文档).ready(函数(){
var a=$(“.nav mobile”);
var b=$(“.brand box”);
变量c=$(“.menu_项”);
var d=$(“.facebook top”);
变量e=$(“.vk top”);
var f=$(“.menu item facebook”);
var g=$(“.menu项vk”);
var h=$(“.head block”);
var posup=b.position();
var posdown=h.position();
$(窗口)。滚动(函数(){
var windowpos=$(window.scrollTop();
if(windowpos=posdown.top){
a、 removeClass(“导航移动黑色”);
c、 removeClass(“菜单项黑色”);
d、 removeClass(“facebook顶级黑”);
e、 removeClass(“vk顶黑”);
f、 removeClass(“菜单项facebook黑色”);
g、 removeClass(“菜单项vk黑色”);
$(“.menu_项”).mouseover(函数(){
$(this.css({“背景色”:“rgba(0,0,0,0.1)”});
});
$(“.menu_项”).mouseout(函数(){
$(this.css({“背景色”:“rgba(0,0,0,0.0)”});
});
}
否则{
a、 addClass(“导航移动黑色”);
c、 addClass(“黑色菜单项”);
d、 addClass(“facebook顶级黑”);
e、 addClass(“vk顶黑”);
f、 addClass(“菜单项facebook黑色”);
g、 addClass(“菜单项vk黑色”);
$(“.menu_项”).mouseover(函数(){
$(this.css({“背景色”:“rgba(255,255,255,0.15)”);
});
$(“.menu_项”).mouseout(函数(){
$(this.css({“背景色”:“rgba(255,255,255,0.0)”});
});
}
});
});
您应该查看javascript控制台。您很可能会看到如下错误
Uncaught TypeError: Cannot read property 'top' of undefined
我猜页面上没有class=“head block”
-这意味着windowpos>=posdown。top
将抛出错误,导致脚本执行在该点停止
它不应该影响页面上的其他脚本——如果它真的杀死了所有javascript,则表明存在编译错误,但粘贴的内容中没有。有时,你可以在你的脚本中找到有趣的角色,导致这种错误。如果你研究了第一种可能性并排除了它,试着把上面问题中的文字复制回你的脚本中——如果有什么有趣的地方,那应该“清理”它
无论如何,您的第一个调用端口应该始终是javascript控制台。如果我上面的建议没有帮助,您应该在控制台中查找错误并编辑您的问题以显示它。请更好地解释“行不通”。将这些文章读到,这样你就可以提供更多有用的上下文信息(请自便)。它是受支持的,所以语法会起作用:“我删除”else-if“语句。意思是在那之后删除整个代码,或者用just-if替换else-if??有时JS问题似乎是一回事,但是与语法相关的项与其他项。。。因此,如果看不到您的错误消息,很难判断。您的
else
将永远无法到达,如果windowpos和posdown.top相等,会发生什么情况?在这种情况下,if
和else if
将为真。你应该重新考虑你的支票/条件。