使用jQuery的offset()方法获取不到元素的坐标,控制台报undefined,请问如何解决?

yun_ya3471
  • 3
新手上路,请多包涵

$(window).scroll(function() {

            var scroll = $(this).scrollTop();    
            //循环每个楼层,通过楼层滚动,高亮相对应的左侧导航
            $('.louti').each(function() {
                var loutiTop = $('.louti').eq($(this).index()).offset().top + 600;
                console.log("loutiTop:" + loutiTop);
                console.log("scroll:" + scroll)
                if(loutiTop > scroll) {
                    $('#loutinav ul li').removeClass('active');
                    $('#loutinav ul li').eq($(this).index()).addClass('active');
                    return false;
                }
            });
        });
回复
阅读 2.7k
1 个回答

在Jquery中使用offset().top或offset().left时如果DOM不可见的话会offset()会返回undefined,如果再使用.top或.left就会报错

上面的回答是在别处看到的,我也在找这个问题,暂未找到解决办法,明明DOM是可见的,但还是输出 undefined

宣传栏