Javascript 未捕获的TypeError:无法读取null的属性“classList”

Javascript 未捕获的TypeError:无法读取null的属性“classList”,javascript,jquery,Javascript,Jquery,嗨,我试图制作一个缩小的头,我几乎让它工作,但我不断得到上述错误,这一节的js文件 var cbpAnimatedHeader = (function() { var docElem = document.documentElement, header = document.querySelector( '.cbp-af-header' ), didScroll = false, changeHeaderOn = 300; function init() {

嗨,我试图制作一个缩小的头,我几乎让它工作,但我不断得到上述错误,这一节的js文件

var cbpAnimatedHeader = (function() {

var docElem = document.documentElement,
    header = document.querySelector( '.cbp-af-header' ),
    didScroll = false,
    changeHeaderOn = 300;

function init() {
    window.addEventListener( 'scroll', function( event ) {
        if( !didScroll ) {
            didScroll = true;
            setTimeout( scrollPage, 250 );
        }
    }, false );
}

function scrollPage() {
        var sy = scrollY();
        if ( sy >= changeHeaderOn ) {
            var windowtab = $(window).width();
            if (windowtab >= 1021)
            {
            classie.add( header, 'cbp-af-header-shrink' );
            }
        }
        else {
            classie.remove( header, 'cbp-af-header-shrink' );
        }
        didScroll = false;
}

function scrollY() {
    return window.pageYOffset || docElem.scrollTop;
}

init();
})();


当我为jQuery添加一个模块时,我让它在DNN中工作,但是当我将它放到皮肤上时,我最终遇到了上面的控制台错误,脚本中的这一行:

header = document.querySelector('.cbp-af-header')
它表示,将返回该类文档中的第一个元素

因此,您可能正在寻找。querySelectorAllselector/s:


返回文档中提供的所有元素div的列表。

我遇到了相同的问题。我意识到IIFE是在DOM完全加载之前执行的。如果要使用jQuery,请尝试将其包装在$document中。就绪

如果要包括jQuery,为什么不在其他地方使用jQuery?这个错误是从哪里来的?它不是直接来自你发布的任何代码。是来自jQuery吗?上面的代码中没有“类列表”。。。它扔到哪里了?你能做一个标记吗?如果你没有显示错误发生的代码,我们也帮不上忙,但是根据猜测,看看你提供了什么,header是空的,因为当你执行header=document.querySelector.cbp af header行时,文档中没有匹配的元素。也许您需要将脚本移到页面末尾。@T.J.Crowder谢谢您的评论。将所有JS脚本移动到页面末尾;是解决方案。elem.classList.remove c;出现错误,删除未定义
header = document.querySelector('.cbp-af-header')
document.querySelectorAll(".cbp-af-header");