航点始终给出“未定义的不是函数/对象”错误

时间:2012-03-31 15:08:26

标签: jquery function document undefined jquery-waypoints

我正在尝试使用Waypoints来做一个非常简单的滚动效果,但由于某些原因,我根本无法让Waypoints完全正常工作。

jQuery(1.7.1)已正确加载,并在Waypoints之前加载。页面上还有其他jQuery函数,它们都可以正常工作;例如:

$(document).ready(function() {
  $(".form label").addClass("column");
}

在jQuery之后,也正确加载了Waypoints(waypoints.min.js,版本1.1.6)。

但无论我做什么,我似乎都无法在Waypoints中获得任何以对除Firefox之外的任何事情做出反应。

如果我直接在元素上调用waypoint(),而不检查document是否完成加载,那么我没有得到任何错误,但没有反应:

$('.wrapper').waypoint(function() {
    alert('You have scrolled to an entry.');
});

- 没有提供控制台错误或警告,但也没有提醒任何事情(正如我不希望的那样,因为脚本是在创建.wrapper div之前放置的。)

如果我等待document完成,就像这样:

$(document).ready(function() {
    $('.wrapper').waypoint(function() {
    alert('You have scrolled to an entry.');
    });
});

- 然后它似乎适用于Firefox,但不适用于Chrome,Opera或Safari。 Safari的网络控制台告诉我

  

TypeError:'undefined'不是函数(评估
  '$('.wrapper').waypoint(function() { alert('You have scrolled to an entry.'); })'

- 而且我不确定为什么undefined现在突然变成了一个函数(或者为什么函数现在突然'设置'为undefined,这是一种更正确的查看方式它)...

我在任何情况下都不习惯使用jQuery或JavaScript,所以我真的不知道在哪里寻找可能与之相冲突的东西,或者为什么它会对我这样做。

帮助?

2 个答案:

答案 0 :(得分:4)

事实证明,无论出于何种原因,我在某个时候添加了jQuery的第二次导入,这次直接来自Google的服务器,并将第二次调用放在一个不同的文件中,在那里它已经看不见多年了。

一旦我摆脱了这一点,Waypoints(或多或少)按预期工作。

答案 1 :(得分:1)

我是这个开发路径的新手,我注意到我对Jquery插件做错了的一件事就是我在head标签中输入脚本的顺序。我首先把我的Jquery脚本放在谷歌Chrome控制台中我未定义的错误消失了。