我正在学习jQuery并试图绕着滚动效果工作。无论如何,我试图使这段代码工作,但这样做有困难。它在运行animate函数时会中断:
我真的很感谢你对这个的帮助。谢谢。
未捕获的TypeError:$(...)。animate不是函数
在HTMLAnchorElement。 (的script.js:58)
在HTMLDocument.dispatch(jquery-3.1.1.slim.min.js:3)
在HTMLDocument.q.handle(jquery-3.1.1.slim.min.js:3)
// Select anchor tags to click on
$(document).on("click", "a", function(event) {
console.log("item clicked");
// Clear out the default action
event.preventDefault();
console.log("working until now");
// Animate to selected selected target
$("html,body").animate({
scroll: $($(this).attr('href')).offset().top
}, 900);
console.log("no errors for now");
});

<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
<script src="javascript/script.js">
</script>
&#13;
答案 0 :(得分:24)
这是因为您使用的jQuery版本。 https://code.jquery.com/jquery-3.1.1.slim.min.js
slim
版本的jQuery不包含所有原始jQuery函数。
您应该使用full
版本。您可以从 here 下载。
如果您阅读本文,将有助于更好地理解 here在某个时刻,你会发现这个陈述,我引用:
超薄版
最后,我们在此版本中添加了一些新内容。有时你 不需要ajax,或者你更喜欢使用众多独立之一 专注于ajax请求的库。而且通常使用起来更简单 所有网络的CSS和类操作的组合 动画。随着包含的jQuery的常规版本 ajax和效果模块,我们发布了一个“苗条”版本 不包括这些模块。总而言之,它排除了ajax,效果和 目前已弃用的代码。
答案 1 :(得分:2)
slim版本不支持某些方法因此包含此CDN
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
在你的项目中 然后运行你的代码它将起作用。
答案 2 :(得分:1)
It work for me ---->
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
示例:
<html>
<title>.....</title>
<body>
<!-------------------- scripts --------------------------------->
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <!- use this->
<script src="js/navbar-fixed.js"></script>
</body>
</html>