首页 > 解决方案 > 不要向错误的原型添加方法

问题描述

我将 jQuery 与 Electron 应用程序一起使用,但我总是收到一个似乎与 jQuery 的补间函数相对应的错误。

我通过标准节点加载 jQuery 要求:

<script type="text/javascript">window.$ = window.jQuery = require('jquery');</script>

当我通过脚本 src 包含 jQuery 时,我得到了同样的错误(jQuery 版本 3.3.1)

例如调用$("#loading-overlay").fadeOut(200);原因:

Uncaught TypeError: (Animation.tweeners[prop] || []).concat is not a function
    at createTween ([PATH]/node_modules/jquery/dist/jquery.js:6848)
    at Object.defaultPrefilter ([PATH]/node_modules/jquery/dist/jquery.js:7021)
    at Animation ([PATH]/node_modules/jquery/dist/jquery.js:7160)
    at HTMLDivElement.doAnimation ([PATH]/node_modules/jquery/dist/jquery.js:7293)
    at Function.dequeue ([PATH]/node_modules/jquery/dist/jquery.js:4376)
    at HTMLDivElement.<anonymous> ([PATH]/node_modules/jquery/dist/jquery.js:4418)
    at Function.each ([PATH]/node_modules/jquery/dist/jquery.js:354)
    at jQuery.fn.init.each ([PATH]/node_modules/jquery/dist/jquery.js:189)
    at jQuery.fn.init.queue ([PATH]/node_modules/jquery/dist/jquery.js:4411)
    at jQuery.fn.init.animate ([PATH]/node_modules/jquery/dist/jquery.js:7304)

我只对 Electron(4.0 版)有这个问题。有谁知道这是什么原因造成的?

标签: javascriptjquerynode.jselectronrequire

解决方案


好吧,这对我来说是愚蠢的。自动完成使我将方法“each”添加到 Object 原型而不是我的自定义类......这显然使 jQuery 感到困惑,因为它在 Animation.tweeners 中找到了属性“each”(因为它在所有对象中)。

但我了解到,当遇到一个真正令人困惑且毫无意义的错误时,请检查您是否不小心覆盖了您不想更改的原型......


推荐阅读