未捕获的TypeError:无法读取null的属性'top':conflict

时间:2012-12-19 19:42:59

标签: jquery

我编写了这段代码来创建一个粘贴在浏览器窗口顶部的浮动侧边栏。我在第3行的chrome中遇到了这个错误。

Uncaught TypeError: Cannot read property 'top' of null 

这导致我使用的插件无法正常工作。

$(document).ready(function(){
    // Floating sidebars on page nodes
    var sidebartop = $('.page-node .panels-flexible-region-node_layout-right').offset().top;
    $(window).scroll(function(){
        if( $(window).scrollTop() > sidebartop ) {
            $('.page-node .panels-flexible-region-node_layout-right').css({position: 'fixed', top: '40px', margin: '0 0 0 650px'});
        } else {
            $('.page-node .panels-flexible-region-node_layout-right').css({position: 'static', margin: '-35px 0 0 0'});
        }
    });
});

1 个答案:

答案 0 :(得分:3)

我认为,jQuery找不到指定的选择器。我是对的

$('.page-node .panels-flexible-region-node_layout-right')

返回空数组。尝试为侧边栏设置一些id(或者想要偏移的元素)并重写代码,如

var sidebartop = $('#your-selector-id').offset().top;

此外,您可以搜索.first-class .second-class.first-class.second-class之间的差异(请注意第二个示例中缺少空格)查询规则。