【发布时间】:2018-05-21 04:34:36
【问题描述】:
我无法从外部加载的文件调用函数。
我有 search_form.php,我从那里调用函数,定义函数的 client.js 文件,以及 plugin_functions.php 文件,我在其中加载 client.js 文件。
在 plugin_functions.php 文件中我有以下代码:
console.log('loaded_client');
function load_client_scripts() {
wp_register_script('js-client', PLUGIN_URL.'includes/js/client.js',array('jquery'),false);
wp_enqueue_script( 'js-client' );
};
add_action( 'wp_enqueue_scripts', 'load_client_scripts' );
在 client.js 中我定义函数如下:
(function($) {
function validateForm(){
console.log('Form validated');
};
})( jQuery );
最后,在 search_form.php 中,我使用 onclick 调用该函数:
<div onclick="validateForm()">
CLICK ME
</div>
现在,js 文件正在正确加载,因为我得到了控制台输出“loaded_client”。但是,当我单击 div 时,我得到 ReferenceError: validateForm() is not defined.
我做错了什么?这肯定是范围问题,但我无法弄清楚。
【问题讨论】:
-
在控制台显示什么错误?和 Ctrl + U 检查你的 JS 是否链接?
-
查看最后一段,JS文件已链接。我得到的错误是 ReferenceError: validateForm() is not defined.
标签: javascript php wordpress scope