代码之家  ›  专栏  ›  技术社区  ›  Jakub Dudek

Jquery.offset()。left有时返回正确的值,有时返回0

  •  0
  • Jakub Dudek  · 技术社区  · 9 年前

    .offset().left 为了设置正确的值,一般来说,我的网站工作得很好,但有时它会停滞不前

    我已经发现了问题所在。我已经打印了 .offset()。左 值输入控制台。日志,看起来是这样的

    Refresh no.1: 0
    Refresh no.2: 0
    Refresh no.3: 1920
    Refresh no.4: 0
    Refresh no.5: 1920
    Refresh no.6: 1920
    Refresh no.7: 0
    Refresh no.8: 1920
    Refresh no.9: 0
    Refresh no.10: 0
    Refresh no.11: 0
    

    有时是对的,有时不是,我不知道为什么。

    1 回复  |  直到 9 年前
        1
  •  -1
  •   Jakub Dudek    9 年前

    好的,问题解决了,如果有人有同样的问题就离开。 看起来,尽管使用了

    $(document).ready 
    

    在页面完全加载之前,它正在计算偏移量

    我要做的是替换这个:

    $(document).ready(function(){
            $something1 = $('#something1').offset().left;
            $something2 = $('#something2').offset().left;
            $something3 = $('#something3').offset().left;
    

    用这个

    $(document).ready(function(){
      $k = 1;
      $('#right').on('click',function(){
                    if($k == 1){
                        $something1 = $('#something1').offset().left;
                        $something2 = $('#something2').offset().left;
                        $something3 = $('#something3').offset().left;
                        $k = 0;