无法读取未定义的属性“ Velocity”

时间:2019-12-04 14:42:38

标签: jquery wordpress velocity.js

在wordpress上,在使用Velocity js时遇到问题。

在function.php内部,我已经将velocity.min.js和velocity.ui.min.js入队,

wp_enqueue_script('velociti-min-js', STYLESHEET_URI . '/assets/js/velocity.min.js', array('jquery'), THEME_VERSION, true);
wp_enqueue_script('velociti-ui-min-js', STYLESHEET_URI . '/assets/js/velocity.ui.min.js', array('jquery'), THEME_VERSION, true);

然后我将main.js文件与我的自定义javascript代码排入队列

wp_enqueue_script('main-theme-function', STYLESHEET_URI . '/assets/js/main-theme-function.js', NULL, THEME_VERSION, TRUE);

当我尝试注册新的力度效果时,例如

$.Velocity
.RegisterEffect("myeffect", {
    defaultDuration: 1,
    calls: [ 
        [ { translateY: '-50%'}, 1]
    ]
});

我在控制台上遇到此错误

Uncaught TypeError: Cannot read property 'Velocity' of undefined

但是我不明白为什么... 有人可以帮忙吗?

非常感谢

3 个答案:

答案 0 :(得分:1)

您应该尝试改用jQuery.Velocity。另外,您也可以将呼叫包装在IIFE中,该别名将jQuery的别名为$

(function ($) {
    // $.Velocity...
})(jQuery);

答案 1 :(得分:0)

  

未捕获的TypeError:无法读取未定义的属性'Velocity'

在您的情况下,表示“ $”(JQuery)没有价值。

主要是因为JQuery未添加到您这边或在Velocity库之后。 确保先加载/添加Jquery,然后再加载Velocity。

但是不知道wordpress怎么做。

答案 2 :(得分:0)

最有可能是加载顺序错误。除非您添加依赖项参数,否则WP会以某种随机顺序加载JS文件。

您需要将velocity js文件作为依赖项添加到main.js中。

wp_enqueue_script('velociti-min-js', STYLESHEET_URI . '/assets/js/velocity.min.js', array('jquery'), THEME_VERSION, true);
wp_enqueue_script('velociti-ui-min-js', STYLESHEET_URI . '/assets/js/velocity.ui.min.js', array('jquery', 'velocity-min-js'), THEME_VERSION, true);
wp_enqueue_script('main-theme-function', STYLESHEET_URI . '/assets/js/main-theme-function.js', ['velociti-min-js', velociti-ui-min-js'], THEME_VERSION, TRUE);

我用数组NULL替换了队列中的['velociti-min-js', velociti-ui-min-js']-您将为脚本设置的标签用作值。这样可以确保这些文件在您的主要js之前加载。