为什么'否则if'表述不正确
Why does this 'else if' statement not work?
JavaScript将无法工作,除非我删除else if
语句。一旦我这样做了,一切都很好,但我真的需要可以用else if
来做的改变。不知道为什么。它所做的是改变菜单状态在一个特定的部分与顶部和底部定义,而不仅仅是我的页面顶部。
//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)"});
});
}
});
});
您应该查看javascript控制台。您很可能会看到类似
这样的错误。Uncaught TypeError: Cannot read property 'top' of undefined
我的猜测是页面上没有class="head-block"
元素-这意味着windowpos >= posdown.top
将抛出错误,导致您的脚本执行在该点停止。
它不应该影响页面上的其他脚本-如果它真的杀死了所有的javascript,它表明一个编译错误,但没有一个在你粘贴的。有时脚本中会出现一些有趣的字符,从而导致这种错误。如果你研究了第一种可能性并排除了它,试着把上面问题中的内容复制回你的脚本中——如果有什么有趣的地方,这应该会"清理"它。
无论哪种方式,您的第一个停靠端口应该始终是javascript控制台。如果我上面的建议没有帮助,你应该在控制台中寻找错误,并编辑你的问题来显示它。
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 你能解释一下为什么这个javascript不正确吗
- 从int值来看,Javascript日期不正确
- jQuery-迭代不正确?(太长,无法执行)
- 字符串解析不正确
- 日历显示不正确
- 引导程序下拉列表显示不正确
- Node.js:多个然后'It’执行顺序不正确
- Highcharts热图显示不正确
- Firefox使用JQuery返回不正确的JSON
- 尝试在两次迭代中警告同一选择器的值,在第一次迭代中得到正确的值,而在第二次迭代中获得不正确的值.为什么?
- Mongoose响应解析不正确
- 否则语句不起作用是我在 jQuery 上的语法不正确
- 为什么'否则if'表述不正确
- 除非在使用之前特别引用,否则IE7中的scrollHeight返回不正确的值