using jQuery on only one page

时间:2018-04-12 作者:user8463989

在我的功能中。php文件我只在需要的页面上加载一个特定的js脚本,因为我不想在不需要它的页面上不必要地加载它。

function tabs_enqueue() {
    if(is_page( 205 )) {
        wp_enqueue_script( \'ui\', get_template_directory_uri() . \'/js/ui/jquery-ui.min.js\', [], \'1.8\', true);
    }
}
add_action(\'wp_enqueue_scripts\', \'tabs_enqueue\');
经过测试,这是完全可行的,但我的问题是,我不知道在我想要的页面上把实际的jquery放在哪里。我无法将其放入页脚,因为其他页面上会出现错误,因为它试图在不加载js文件的情况下运行代码。我想把代码放在结束body标记之前。如果我把它放在get\\u footer()代码之后,那么它就在源代码的底部,如果我把它放在get\\u footer()之前,那么它甚至在加载js文件之前就被调用了。那么,我如何让这个代码显示在结束body标记之前呢?

 <script>
    jQuery(window).load(function() {
        //code here

    });
</script>

2 个回复
SO网友:Felipe Elia

您不需要将其添加到模板上,可以使用wp_add_inline_script() 作用应该是这样的:

function tabs_enqueue() {
    if(is_page( 205 )) {
        wp_enqueue_script( \'ui\', get_template_directory_uri() . \'/js/ui/jquery-ui.min.js\', [], \'1.8\', true);
        wp_add_inline_script( \'ui\',
            \'jQuery(window).load(function() {
                //code here
            });\' );
    }
}
add_action(\'wp_enqueue_scripts\', \'tabs_enqueue\');
希望有帮助!

SO网友:dawoodman71

虽然FelipeElia的答案有效,但最好将代码分开。您不需要更新PHP文件来更改Javascript。

我会在页面检查中添加对javascript文件的引用,并确保在所需数组中包含“ui”,以便在加载“ui”之前不会加载新脚本。

wp_enqueue_script( \'my-script\', get_template_directory_uri() . \'/js/myScript.js\', [\'ui\']);
然后创建一个保存自定义Javascript的文件(js/myScript.js)。我建议将代码放在一个闭包中,这样它就不会受到任何其他脚本的影响。

(function($, window, document){
    // Use strict mode to reduce development errors.
    "use strict";

    // Put your code here.

})(jQuery, window, document);

结束

相关推荐

如何在$(Window).on(‘Load’)之后触发jQuery

我有一个使用elementor page builder构建的WordPress页面,在该页面中,我使用名为响应式动画书的插件显示“动画书”(pdf查看器)。动画书由javascript函数响应,每当浏览器窗口调整大小时,动画书都会自动调整大小(我不知道为什么,但这不是我的插件)。问题是这些书以最小的大小呈现,插件会激发jQuery(window).trigger(\'rfbwp.resize\'); 加载页面时,触发调整大小以使其适合当前窗口。然而,这似乎在某些浏览器上不起作用(至少在我的mac上的sa