【问题标题】:Uncaught TypeError: $.getScript(...).done is not a function未捕获的 TypeError:$.getScript(...).done 不是函数
【发布时间】:2019-02-01 09:26:40
【问题描述】:

我在这里遇到了一个奇怪的情况..

.

以下代码正在运行:

// this code working perfectly

$.getScript( "https://wchat.freshchat.com/js/widget.js" ).done(( script, textStatus )=>{
    // run something
});

.

.

但如果我把整个代码放在setTimeout 中,browser console 会报错

// this will give error in browser console

setTimeout(()=>{
    $.getScript( "https://wchat.freshchat.com/js/widget.js" ).done(( script, textStatus )=>{
        // run something
    });
}, 4000);

它会在browser console中给出error:

有什么问题?

【问题讨论】:

  • 有什么问题?
  • 告诉我们哪个错误是一个好的开始。
  • 错误在标题中我猜是 Uncaught TypeError: $.getScript(...).done is not a function
  • 我刚刚编辑了问题....
  • 你能在 codepen.io/pen 这样的沙盒中重现这个问题吗?代码工作得很好

标签: javascript jquery settimeout getscript


【解决方案1】:

我在将 Bootstrap v4.0 更新到 v4.3.1 时遇到了同样的问题

要修复它,您需要使用不带 slim 后缀的 jQuery。 (使用jquery-3.3.1.min.js 而不是jquery-3.3.1.slim.min.js)

【讨论】:

    【解决方案2】:

    也许你需要向它“导入”这个函数:

    setTimeout((getScript)=>{
        $.getScript( "https://wchat.freshchat.com/js/widget.js" ).done(( script, textStatus )=>{
            // run something
        });
    }, 4000);
    

    【讨论】:

    • setTimeout 函数在其原始实现中从未传递任何参数。
    • 嗯,好的。我不是 js 开发人员。但是学习新东西总是好的。可能是因为箭头函数没有创建自己的“this”?
    猜你喜欢
    • 1970-01-01
    • 2017-05-15
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2019-09-15
    • 2018-12-21
    • 2018-11-12
    相关资源
    最近更新 更多