2017-06-02 37 views
1

所以,这是一件事情。粘性不是函数

我通过在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),我无法弄清楚,为什么它不是工作...

我知道有吨这样的问题,但我要疯了......

回答

1

该文档指出您需要包含加载脚本所依赖的注册脚本句柄。粘滞取决于jQuery。

$的DEP
(阵列)(可选)注册脚本的数组处理这个脚本取决于。
默认值:阵列()
- 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 
+1

烨。他不需要wp_enqueue_script('sticky),只需注册它并使其args脚本使用它作为它将在之前加载的依赖项:'wp_register_script('html5blankscripts',get_template_directory_uri()。'/js/scripts.js',数组('jquery','sticky'),'1.0.0'); // Custom scripts' - 另外,如果一个插件使用'sticky'这个句柄,如果脚本不是同一个脚本,你将会遇到问题,所以我制作了带有主题前缀的句柄。 – Christina