javascript - 如何在 WordPress `functions.php` 中将一个又一个脚本排队,并让它们一起工作?

标签 javascript php wordpress enqueue

我有 2 个 .js 文件,第一个是 plugins.js,第二个是 ui.js,并且两个文件都是可见的在检查器的“调试”上,因此两者都被包含在内。

我在 plugins.js 中有一个 jquery 函数,我需要在 ui.js 中调用它,所以我将 plugins.js 加入队列首先,在其正下方,我将 ui.js 加入队列。

但是,网络浏览器中的控制台告诉我该函数未定义,并且它不起作用。

如果我将函数从 plugins.js 剪切并粘贴到 ui.js 中,它就会起作用。当我在 JSfiddle 中尝试时它也起作用了。

functions.php

function add_scripts() { 

wp_enqueue_script( 'plugins', get_template_directory_uri() . '/javascript/plugins.js', array( 'jquery', 'jquery-ui-core' )           , '1.0.0', true );
wp_enqueue_script( 'ui'     , get_template_directory_uri() . '/javascript/ui.js'     , array(), '1.0.0', true );
}
add_action('wp_enqueue_scripts', 'add_scripts');

plugins.js:

jQuery(document).ready(function($) {
    function PNGPreloader(e,t,i,r,n,a){...}
});

ui.js:

jQuery(document).ready(function($) {
    $(...).each(function(){
        mobileIcons[ID] = new PNGPreloader($object,frames,size[0],size[1],20,false);
    });

如果我将 plugins.js 中的函数放入 ui.js 中,它就会起作用:

jQuery(document).ready(function($) {
    function PNGPreloader(e,t,i,r,n,a){...}
    $(...).each(function(){
        ... = new PNGPreloader(...);
});

最佳答案

应该将jquery-ui-widget添加到wp_enqueue_script的dependency参数中。

function stripesinteriors_theme_resources() { 
    wp_enqueue_script( 'plugins', get_template_directory_uri() . '/javascript/plugins.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget' ), '1.0.0', true );
    wp_enqueue_script( 'ui'     , get_template_directory_uri() . '/javascript/ui.js'     , array()                                                , '1.0.0', true );
}

关于javascript - 如何在 WordPress `functions.php` 中将一个又一个脚本排队,并让它们一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377457/

相关文章:

javascript - 在 HTML Canvas 中创建图像淡入淡出

javascript - 识别手动选择元素的最佳方法

javascript - 修改 SVG.js 创建的父 SVG 的高度

php - 同一用户登录具有不同数据库的不同 WordPress 域

html - Wordpress 页面链接无效

javascript - 如何在检查同级输入时禁用输入?

javascript - 在angularjs中动态设置过滤器

php - 批量压缩 (Zip) 文件

php - HTML净化器Symfony2.3

php - 如何为不同于指定的 request_filename 编写重写条件