在不排队的情况下运行具有依赖项的脚本的正确方法?

时间:2014-07-18 作者:Bryan Willis

使用排队,您将改变$deps 要使脚本工作,首先需要运行的脚本或脚本数组。

<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>
例如:

function script_that_requires_jquery() {
    wp_register_script( \'script-with-dependency\', \'http://www.example.com/script-with-dependency.js\', array( \'jquery\' ), \'1.0.0\', true );
    wp_enqueue_script( \'script-with-dependency\' );
}
add_action( \'wp_enqueue_scripts\', \'script_that_requires_jquery\' );
我通常这样做,但似乎并不总是奏效:

function script_that_requires_jquery(){
    if ( wp_script_is( \'jquery\', \'done\' ) ) { ?>
        <script type="text/javascript">
        (function($) {
            // jquery function goes here    
        })( jQuery );
        </script>
    <?php }
}
add_action(\'wp_footer\', \'script_that_requires_jquery\');
也许就是这个?

function script_that_requires_jquery(){
    wp_enqueue_script( \'jquery\' );
    ?>
        <script type="text/javascript">
        (function($) {
            // jquery function goes here    
        })( jQuery );
        </script>
    <?php 
}
add_action(\'wp_footer\', \'script_that_requires_jquery\');

2 个回复
SO网友:Pieter Goosen

function script_that_requires_jquery() {
    wp_register_script( \'script-with-dependency\', \'http://www.example.com/script-with-dependency.js\', array( \'jquery\' ), \'1.0.0\', true );
    wp_enqueue_script( \'script-with-dependency\' );
}
add_action( \'wp_enqueue_scripts\', \'script_that_requires_jquery\' );
这是将脚本(和样式)排队的正确方法。你应该always 正在使用wp_enqueue_scripts 将脚本和样式挂接到。

当您注册脚本和样式时,这里有一些东西需要检查。首先,确保在函数中放置它们的顺序是正确的。函数中的第一个脚本将首先运行,第二个脚本将运行,以此类推。。因此,您不能将依赖jquery的脚本放在jquery之前,它将不起作用

另一个潜在的陷阱是add_action( $hook, $function_to_add, $priority, $accepted_args );. 不设置$priority 参数,则始终存在加载脚本/样式的危险before 其他可能覆盖您的脚本/样式。

在您的情况下,您的脚本可能在jquery之前加载,因此它将无法工作。我always 当我添加自定义脚本和样式时,将此参数设置为非常低的优先级(非常高的数字)。这确保了我的脚本和样式加载到最后。所以我会这样做

add_action( \'wp_enqueue_scripts\', \'script_that_requires_jquery\', 999 );

SO网友:Mark Kaplun

在依赖jquery的代码之前将jquery(或任何其他库)排队是不够的,但您还需要确保在浏览器解析/运行代码之前加载了jquery。

结束

相关推荐

如何让jQuery脚本在页面上运行?

我很难想出如何让jQuery脚本以“正确”的方式在我的Wordpress页面上运行。我跟踪了this 并执行第一个答案所说的操作。关于如何让jQuery在您的博客上工作,我读了很多教程和文章,但我似乎无法理解。我有很多问题,我希望能从其他有经验的人那里得到解决。首先,我读过的大部分教程和内容都是如何获取jQueryincluded 在你的博客上。我的第一个问题是,您下载的大多数主题不应该自动在标题中包含jQuery吗?例如,我的网站在每页中都会自动包含以下行:<script type=\'text/