【问题标题】:jQuery doesn't know function scrollTopjQuery 不知道函数 scrollTop
【发布时间】:2011-07-19 22:59:32
【问题描述】:

我想创建一个 div,它可以在 y 方向上滚动,但在 x 方向上是固定的。 我已经得到了帮助,在这里它可以工作: http://jsfiddle.net/Q4dWz/

但不知何故,它不想在家工作。 我已经下载了最新的 jquery:

wget -O jquery-1.5.min.js http://code.jquery.com/jquery-1.5.1.min.js

每次我调用 scrollTop 我都会说 scrollTop 不是一个函数 :( http://gbimg.org/p.php?q=BRYaL 我不明白为什么它不是一个函数,我也不明白为什么 Firebug 会说一些关于 jquery 1.2.1 的事情(看图片)。 代码如下:

160 $(document).ready(function() {
161     $(window).scroll(function(){
162         var $win = $(window);
163         $('#zeit').css('top', 20 - $win.scrollTop());
164     });
165-238 some other functions
238 });

【问题讨论】:

  • 我没有立即看到您的代码有任何问题。你能发布另一个重现问题的 jsfiddle 吗?
  • 您能否在这不起作用的页面中显示更多 <head>(或您要提取脚本的任何位置)?您可能在某处包含了非常旧的 jQuery 版本而没有注意到。
  • scrollTop() 直到 1.2.6 才添加到 jQuery 中,从您的图像看来您仍在使用 jQuery 1.2.1。
  • 你有没有试过把win声明前没用的$去掉?在 JS 中,您不会像 PHP 中那样使用 $ 启动“普通”变量

标签: jquery scrolltop vertical-scrolling


【解决方案1】:

您的家庭环境中设置为两个 jQuery 版本的 $ 变量可能会发生冲突,因此 var $win = $(window);$win 设置为 jQuery 1.2.1 对象而没有所需的 scrollTop 函数。如果您查看jQuery scrollTop page,您会发现scrollTop 是在1.2.6 版本中引入的。

【讨论】:

  • 这很奇怪,因为我从来没有安装过 jquery 1.2.1
  • @Mischka,你的脚本参考是什么样的?
  • @Mischka 查看使用 firebug 为页面加载的脚本文件也是一个好主意。这将告诉您脚本的名称,您可能会从其名称中找出不正确的脚本引用。
【解决方案2】:

确保您使用的是最新版本的 jQuery。
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type = text/javascript" ></script>

另外,使用parseInt() 进行计算也是一个好习惯。

$('#zeit').css('top', parseInt(20-$win.scrollTop()));

【讨论】:

  • scrollTop 总是返回一个数字,而- 在 JS 中总是一个算术运算符,所以我对在参数上调用 parseInt 的效用持怀疑态度。
  • 我同意。在处理生成整数的变量或函数时使用它是一个好习惯。它还使阅读代码更容易。
猜你喜欢
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多