不要将方法添加到错误的原型中

时间:2018-12-31 15:27:21

标签: javascript jquery node.js electron require

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

我正在通过标准节点require加载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版)中遇到这个问题。有谁知道这是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

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

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