Javascript Can';t在Wordpress中从HTML格式的JS文件调用函数

Javascript Can';t在Wordpress中从HTML格式的JS文件调用函数,javascript,php,jquery,html,wordpress,Javascript,Php,Jquery,Html,Wordpress,快速总结:我在一个.js文件中有一个函数,它是通过wp\u enqueue\u脚本加载的。现在,当我试图从一个模板文件中的HTML调用该函数时,它似乎不起作用 我已经对此进行了研究,我认为我做得很好,但很明显,我肯定错过了什么,不能完全确定它是什么 因此,在functions.php中,我有以下代码: function script_assets() { wp_enqueue_script( 'js-code', get_template_directory_uri() . '/js

快速总结:我在一个.js文件中有一个函数,它是通过wp\u enqueue\u脚本加载的。现在,当我试图从一个模板文件中的HTML调用该函数时,它似乎不起作用

我已经对此进行了研究,我认为我做得很好,但很明显,我肯定错过了什么,不能完全确定它是什么


因此,在functions.php中,我有以下代码:

function script_assets() {
    wp_enqueue_script( 'js-code', get_template_directory_uri() . '/js/js-code.js' );
}
add_action( 'wp_enqueue_scripts', 'script_assets' );
这项工作符合预期,并导致将其添加到头部:

<script type='text/javascript' src='http://.../js/js-code.js?ver=4.1.1'></script>
PHP位工作正常,脚本标记和介于两者之间的所有内容都会进入HTML,只要我没有按预期出现在首页上。它在js code.js通过我上面粘贴的行加载之后运行。
deploy()
switchMobile()
都是js code.js中的函数,我知道它们可以工作,因为我在不同的上下文中使用它们时没有任何问题

然而Chrome抛出

未捕获引用错误:未定义部署

未捕获引用错误:未定义switchMobile

并且这些函数没有被执行

我知道“如何从HTML调用JS函数”这个问题已经被问过无数次了,但就像我说的,我已经读了很多页,它们似乎都说了同样的话,我一直遵循这个原则,但仍然不起作用

有什么想法吗?谢谢


新发展:

因此,结果是,出于某种奇怪的原因,如果我只调用函数而不使用
setTimeout()
,那么第二个*-
switchMobile()
-可以正常工作。。。但不是第一个。如果我将它们反转,使
deploy()
位于
switchMobile()
之后,那么这次
deploy()
有效。我完全糊涂了:s

*为了清楚起见,我最初的示例只有一个函数,而实际上我调用了两个函数。我编辑了这个问题以反映这一点


更新


尝试将函数调用封装在
$(document).ready(function(){..})中
,尝试使用switchMobile(jQuery(“#switcher”),尝试根本不使用JQuery(使用
document.getElementById(“切换器”)
)。。。什么都不管用。在函数调用旁边添加一个
alert()
可以按预期的方式工作…

因此这是一个范围问题,我必须像下面这样附上函数调用:

jQuery(document).ready(function($) {
    deploy($('#rightsec .deployer'));
});

可能还有其他方法,但它是这样工作的,所以我不会更改它。

在初始化文件之前是否调用了
switchMobile
?不,在初始化文件之后调用。然而,我尝试在页脚中加载该文件,但没有解决任何问题。您正在从子主题调用wp_enqueue_脚本的function.php文件是它们还是主主题?它位于我正在使用的子主题中。
jQuery(document).ready(function($) {
    deploy($('#rightsec .deployer'));
});