未捕获的TypeError:$(...)。velocity不是一个函数

时间:2016-04-20 08:05:29

标签: javascript jquery browserify velocity commonjs

我有以下代码:

var $ = require('jquery');
var velocity = require('velocity-animate');

module.exports = function () {

    function togglePanel () {

        $('.trip-assist-search-panel__container').velocity({
            height: '0px'
        },{
            duration: 400
        });

    }

    return {
        togglePanel: togglePanel
    };

}();

togglePanel()被触发时,会抛出以下错误:

  

未捕获的TypeError:$(...)。velocity不是函数

通常通过确保在需要它的库之前加载JQuery来解决这个问题。但是,我... ..

var $ = require('jquery'); // first
var velocity = require('velocity-animate'); // second

那么..给出了什么?

1 个答案:

答案 0 :(得分:5)

来自the documentation

  

模块加载器:Browserify
如果你使用Velocity和jQuery,你必须在Velocity之前需要jQuery,你必须分配   jQuery全局在window对象上:

window.jQuery = window.$ = require("path/to/jquery-x.x.x.js");
require("path/to/velocity.js");
// Optional: If you're using the UI pack, require it after Velocity. (You don't need to assign it to a variable.)
require("path/to/velocity.ui.js");
/* Your app code here. */
$("body").velocity({ opacity: 0.5 });

您只是将jQuery分配给本地 $变量。