我不了解如何在WordPress中链接Java脚本文件

时间:2019-03-28 作者:JakePowell

我试图通过点击按钮来运行一些简单的javascript,但似乎找不到关于如何设置javascript以在wordpress中运行的明确说明。

到目前为止,我采取的步骤是将脚本排队:

function tyc_load_styles() {
    wp_enqueue_style(\'main_font\', \'https://fonts.googleapis.com/css?family=Roboto:300\');
    wp_enqueue_style(\'font_awesome\', \'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css\');
    wp_enqueue_style(\'main_styles\', get_stylesheet_uri());
    wp_enqueue_script( \'tyc_scripts\', get_theme_file_uri(\'/js/tyc_scripts.js\'));
};

add_action(\'wp_enqueue_scripts\', \'tyc_load_styles\');
然后在我的js文件中:

document.getElementById("navButton").addEventListener("click", function(){
 document.getElementById("mobile-menu").style.display = "block";
});
最后在标题中。php

<button id="navButton" class="button icon">
  <i class="fa fa-3x fa-bars mobile-nav"></i>
</button>
我收到一个未捕获的类型错误:无法读取null的属性“addEventListener”

提前感谢!

2 个回复
最合适的回答,由SO网友:Rizwan Zakir 整理而成

请阅读此文档https://developer.wordpress.org/reference/functions/wp_enqueue_script/您需要将第5个参数设置为true,以便将javascript加载到页脚中。

wp_enqueue_script( \'tyc_scripts\', get_theme_file_uri(\'/js/tyc_scripts.js\'), array(), false, true );

如果问题仍然存在,请在jquery中添加js代码document.ready()

SO网友:JakePowell

多亏了WebElaine,你才明白。

我认为类型错误是因为在DOM之前加载了脚本,因此没有要获取的navButton,将函数包装在DOMcontentloaded侦听器中就成功了。

document.addEventListener(\'DOMContentLoaded\', function () {
    document.getElementById("navButton").addEventListener(\'click\', function() {
        alert("This works!");
    });
});

相关推荐

尝试仅在PODS类别/自定义帖子类型内的页面上加载JavaScript

我想加载CSS,但只在某些页面上加载。这段代码通常工作得很好,但我无法确定“条件标记”是什么只会加载这些页面。这是我在函数中放置的函数。php文件://Below loads JS ONLY for the main directory pages function directory_scripts () { if ( *** NOT SURE *** ): wp_enqueue_style( \'addev