为啥会发生此 JQuery 错误?动画不是函数
Posted
技术标签:
【中文标题】为啥会发生此 JQuery 错误?动画不是函数【英文标题】:Why is this JQuery error happening? Animate is not a function为什么会发生此 JQuery 错误?动画不是函数 【发布时间】:2017-08-21 09:48:58 【问题描述】:我正在学习 jQuery 并尝试解决滚动效果。无论如何,我正在尝试使此代码正常工作,但在这样做时遇到了麻烦。它在运行 animate 函数时中断:
非常感谢您在这方面的帮助。谢谢。
未捕获的类型错误:$(...).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>
【问题讨论】:
如果有人只想滚动到顶部使用它。 ***.com/a/24559613/8015878 【参考方案1】:这是因为您使用的 jQuery 版本。 https://code.jquery.com/jquery-3.1.1.slim.min.js
slim
版本的 jQuery 不包含所有原始的 jQuery 函数。
您应该使用full
版本。您可以从 here 下载。
如果您阅读这篇文章将有助于更好地理解 here 在其中的某个位置,您会找到此声明,我引用:
苗条身材
最后,我们在此版本中添加了一些新内容。有时你 不需要 ajax,或者您更喜欢使用众多独立的之一 专注于 ajax 请求的库。而且通常使用起来更简单 适用于所有网络的 CSS 和类操作的组合 动画。连同包含 jQuery 的常规版本 ajax 和效果模块,我们正在发布一个“苗条”版本, 不包括这些模块。总而言之,它不包括 ajax、效果和 目前已弃用的代码。
【讨论】:
确实,它不再显示错误了。但是,我在 bootstrap 中使用的弹出效果现在已经崩溃了。我查看了您发送给我的文章,它指定将发生重大更改。我认为它也可以通过引导程序影响其他实现。 :( 你能看一下代码,看看它是否有任何缺陷吗?谢谢! @DuhanesAndrei,我很高兴它解决了这个问题。关于弹出窗口的问题,请使用整个代码创建jsfiddle.net 或创建另一个问题并给我链接,我会尽力帮助你。 基本上我仍在尝试在单击 标签时使滚动平滑滑动工作。小提琴地址是jsfiddle.net/xczv0kk4。非常感谢! @DuhanesAndrei,我没有看到任何弹出窗口。您提供的小提琴不包括 Bootstrap 文件或 jQuery 文件。我在小提琴中添加了它们。您的意思是当您单击红色标题时应该滚动到绿色标题?在此处尝试更新小提琴jsfiddle.net/xczv0kk4/1 伙计,如果你在克鲁日,我会给你买啤酒的!这就是我想做的,滚动效果。而且我还没有添加弹窗,但是我现在正在做,你可以看看。【参考方案2】:slim 版本不支持某些方法,因此包含此 CDN
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
在您的项目中 然后运行你的代码就可以了。
【讨论】:
【参考方案3】: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>
【讨论】:
请描述发生了什么?? 您是如何找到解决方案的?以上是关于为啥会发生此 JQuery 错误?动画不是函数的主要内容,如果未能解决你的问题,请参考以下文章
Backbone.js 视图是不是需要 jQuery 或 Zepto? (或者:为啥我会收到“未捕获的类型错误:未定义不是函数”?)