Javascript 通过jQuery';行不通

Javascript 通过jQuery';行不通,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,以下jQuery代码: HTML: 你好 CSS: .标题{ 背景色:黑色; 高度:1000px; 宽度:300px; 颜色:白色; 文本对齐:居中; 填充:30px; } .固定.导航栏{ 边框:10px纯红; 位置:固定; 背景色:白色; } navbar先生{ 背景颜色:蓝色; 高度:50px; 宽度:300px; 颜色:白色; } JS: $(窗口)。滚动(函数(){ if($(window.scrollTop()>200)(“header”).addClass(“fixed”); e

以下jQuery代码:

HTML:
你好
CSS:
.标题{
背景色:黑色;
高度:1000px;
宽度:300px;
颜色:白色;
文本对齐:居中;
填充:30px;
}
.固定.导航栏{
边框:10px纯红;
位置:固定;
背景色:白色;
}
navbar先生{
背景颜色:蓝色;
高度:50px;
宽度:300px;
颜色:白色;
}
JS:
$(窗口)。滚动(函数(){
if($(window.scrollTop()>200)(“header”).addClass(“fixed”);
else$(“头”).removeClass(“固定”);
});
确实有效

但是,当我把它添加到我的主页时,我必须刷新页面以添加“固定”类。但是我希望在向下滚动时实时添加该类,而不必刷新页面。这在JSFIDLE中有效,为什么它在我的页面上不起作用

我的页面:

尝试使用

$(function() {
    $(window).on('scroll', function(){
        if($(this).scrollTop() > 200) $("header").addClass("fixed");
        else $("header").removeClass("fixed");    
    });
});

正如Karl André所说,您的
$
对象正在被覆盖。要使代码正常工作,可以执行以下任一操作:

使用
jQuery
对象:

jQuery(window).scroll( function(){
    if(jQuery(window).scrollTop() > 200) jQuery("header").addClass("fixed");
    else jQuery("header").removeClass("fixed");    
});
或者将所有内容包装在自动执行函数中,将
jQuery
对象作为参数传递:

(function($)
{
    $(window).scroll( function(){
        if($(window).scrollTop() > 200) $("header").addClass("fixed");
        else $("header").removeClass("fixed");    
    });
}(jQuery))

尝试添加
$(function(){/*您的js代码在这里*/})
@Aleksandar没有尝试,但它不会改变任何东西<代码>$(窗口)是在DOM准备就绪之前定义的。检查页面上的控制台会在索引的第34行出现错误:“undefined is not a function”(未定义不是函数),这是下面的一行:
if($(窗口).scrollTop()>50)$(“header”).addClass(“fixed”)您的
$
符号被覆盖。使用
jQuery
而不是
$
@SimonMathewson试试Karl Andre说的话,或者将其封装在一个自动执行函数中,将jQuery作为参数传递<代码>(函数($){/*code here*/}(jQuery))
查看OP的注释。
(function($)
{
    $(window).scroll( function(){
        if($(window).scrollTop() > 200) $("header").addClass("fixed");
        else $("header").removeClass("fixed");    
    });
}(jQuery))