为啥会发生此 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 错误?动画不是函数的主要内容,如果未能解决你的问题,请参考以下文章

如果应用了 css 过渡,为啥动画回调函数会立即触发?

Backbone.js 视图是不是需要 jQuery 或 Zepto? (或者:为啥我会收到“未捕获的类型错误:未定义不是函数”?)

jQuery 动画故障:当鼠标快速移动时,函数以错误的顺序触发

可排序不是一个函数 Jquery UI

为啥这个函数调用的执行时间会发生变化?

为啥受保护的构造函数会在此代码中引发错误?