所以,这是一件事。
我正在通过WP中的functions.php文件加载几个脚本,如下所示:
wp_register_script('load-jquery', get_template_directory_uri() . '/js/lib/jquery.min.js', array(), '2.2.4'); // jQuery
wp_enqueue_script('load-jquery'); // Enqueue it!
wp_register_script('bootstrap', get_template_directory_uri() . '/js/lib/bootstrap.min.js', array(), '3.3.7'); // Bootstrap
wp_enqueue_script('bootstrap'); // Enqueue it!
wp_register_script('sticky', get_template_directory_uri() . '/js/lib/jquery.sticky.js', array(), '1.0.4'); // Sticky
wp_enqueue_script('sticky'); // Enqueue it!
wp_register_script('conditionizr', get_template_directory_uri() . '/js/lib/conditionizr-4.3.0.min.js', array(), '4.3.0'); // Conditionizr
wp_enqueue_script('conditionizr'); // Enqueue it!
wp_register_script('modernizr', get_template_directory_uri() . '/js/lib/modernizr-2.7.1.min.js', array(), '2.7.1'); // Modernizr
wp_enqueue_script('modernizr'); // Enqueue it!
wp_register_script('html5blankscripts', get_template_directory_uri() . '/js/scripts.js', array('jquery'), '1.0.0'); // Custom scripts
wp_enqueue_script('html5blankscripts'); // Enqueue it!
我的脚本文件如下所示:
(function ($, root, undefined) {
$(function () {
'use strict';
// sidebar width as parent
$('.sidebar').width($('.sidebar').parent().width());
// sticky
$(".page-menu").sticky({topSpacing:0});
});
})(jQuery, this);
第一个代码片段(计算宽度)正常工作,但第二个我得到“非功能”错误。
jquery正确加载(sticky.js也是如此),我无法弄清楚它为什么不起作用......
我知道有很多像这样的问题,但我会发疯...
答案 0 :(得分:1)
文档说明您需要包含加载脚本所依赖的已注册脚本句柄。 Sticky取决于jQuery。
<强> $ DEPS 强>
(array)(可选)此脚本的注册脚本处理数组取决于。
默认值:array()
- https://developer.wordpress.org/reference/functions/wp_enqueue_script/
wp_register_script('sticky',
get_template_directory_uri() . '/js/lib/jquery.sticky.js',
array(), '1.0.4'); // Sticky
应该是
wp_register_script('sticky',
get_template_directory_uri() . '/js/lib/jquery.sticky.js',
array('jquery'), '1.0.4'); // Sticky