首页 > 解决方案 > 控制台返回未定义;eval 返回正常值

问题描述

当我使用 jquerys .offset() 或 .position() 函数时,它们总是返回未定义。当我在控制台中键入它们时,我得到相同的结果,但 eval(?) 返回正确的值。这是为什么?我是 jquery 的新手,所以我有点困惑。

错误图片

html:

<!DOCTYPE html>

<head>
    <title>r</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="style.css">
    <script src="index.js"></script>
</head>

<body>

<div class="container">
    <div class="inner">

    </div>
  </div>
</body>

CSS:

body {
    height: 100%;
    width: 100%;
}

.container {
    width: 100%;
    position: relative;
    float: left;
    background: #fff;
    height: 1200px;
  }

  .inner {
    width: 150px;
    height: 100px;
    position: absolute;
    top: 20%;
    left: 10%;
    background: red;
  }

js:

var offset = $(".inner").offset();
$(window).scroll(function(event) {
  var st = $(this).scrollTop();
  $(".inner").css("left", st + offset.left);
});

标签: javascriptjqueryhtmlcssweb

解决方案


推荐阅读