使用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;
                }
            });
        });
回复
阅读 3k
1 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏