1

我编写了这段代码来创建一个浮动侧边栏,它贴在浏览器窗口的顶部。我在第 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'});
        }
    });
});
4

1 回答 1

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(注意第二个示例中缺少空格)查询规则之间的差异。

于 2012-12-19T20:03:30.193 回答