【问题标题】:Javascript script loading order - function undefinedJavascript脚本加载顺序 - 函数未定义
【发布时间】:2016-03-20 04:04:48
【问题描述】:

我在一个不太好的模板中工作,这迫使我用 JS 加载一些脚本,因为我无法控制那里的顺序。我正在尝试加载一个库,但是当我尝试调用它时,我得到了一个未定义的错误。

$.getScript( "js/velocity.min.js").done(function(){
    $('body').velocity({ width: 200})
});

Get error: Uncaught TypeError: $(...).velocity is not a function

这怎么可能?我刚刚加载了你!

好的,与另一个必须加载的脚本发生冲突,为了解决这个问题,我将速度代码包装在一个闭包中并将“定义”设置为空。

(function($){
    var define = null;
    //then velocity code is here
})(jQuery)

【问题讨论】:

  • 你确定脚本已经加载成功了吗?
  • @CodeWithCoffee 否,否则不会触发成功回调
  • 正如我从他们的网站上看到的,他们大多将其称为$.Velocity,所以,不妨在这里查看语法:julian.com/research/velocity/#utilityFunction
  • 我想象中的。让我们尝试从其他站点加载脚本,例如//cdnjs.cloudflare.com/ajax/libs/velocity/1.2.2/velocity.min.js
  • 你以后可以通过 DevTools 做$('body').velocity({..}) 吗?或者它仍然抛出?

标签: javascript jquery velocity.js


【解决方案1】:

确保在 Velocity.js 之前加载 Zepto/jQuery

<script type='text/javascript' src='js/zepto.min.js'></script>
<script type="text/javascript" src="js/velocity.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多