offset()。left在加载时返回的值不同于

时间:2015-06-12 15:47:48

标签: jquery

我在加载后立即定位div,并且当我点击链接时,相同的div将被重新定位。第一次定位(触发事件)左侧误差约为5px,而klick事件正确定位。为什么会出现此错误?除了我必须在开始时等待的文件之外还有其他什么吗?

jQuery(document).ready($) {
    // move indicator & slide down
    $('#menu a').click(function(e){

        $('a').removeClass('active');
        $(this).addClass('active');

        $('.active-indicator').animate({
            'left': $(this).offset().left,
            'width': $(this).outerWidth()           
        });
    });

    $('.active').trigger('click');
}

1 个答案:

答案 0 :(得分:1)

当你说"在加载"时,你实际上将元素定位在文档准备就绪上,此时所有元素都没有实际完全加载,渲染并被计入文档流。当运行click事件以定位元素时,此时已完全创建文档布局。为了在点击事件之前获得此效果,请尝试在jQuery(window).load()上运行定位代码。