Jquery .offset().left 有时 returns 正确值,有时 returns 0

Jquery .offset().left sometimes returns correct value, sometimes returns 0

我正在制作一个带有幻灯片的网站。我制作了两个 div,一个的宽度等于屏幕的宽度,第二个(子)大 9 倍(用于 9 张幻灯片)

我正在使用 .offset().left 来设置正确的值,总的来说,我的网站运行良好,但有时会停滞不前

我找到问题所在了。我已经将 .offset().left 值打印到 console.log 中,它看起来像

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

有时正确,有时不正确,我不知道为什么。

好的,解决了,如果有人遇到同样的问题就离开。 似乎,尽管使用

$(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;