在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
但是我不明白为什么... 有人可以帮忙吗?
非常感谢
答案 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之前加载。