如何正确地将javascript与jQuery依赖项排队
我有一个名为如何正确地将javascript与jQuery依赖项排队,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我有一个名为br tagging.js的简单javascript文件,我正试图在Wordpress中排队。它所做的只是在一个提醒“Hello World!”的按钮上添加一个onclick函数。js文件位于子主题的根目录中。按钮的javascript文件和相应的HTML如下所示: HTML <button type="button" id="br-button"> Test Button </button> 我在子主题的functions.php文件中创建了以下函
br tagging.js
的简单javascript文件,我正试图在Wordpress中排队。它所做的只是在一个提醒“Hello World!”的按钮上添加一个onclick函数。js文件位于子主题的根目录中。按钮的javascript文件和相应的HTML如下所示:
HTML
<button type="button" id="br-button">
Test Button
</button>
我在子主题的functions.php
文件中创建了以下函数:
functions.php
add_action('wp_enqueue_scripts', 'br_enqueue');
function br_enqueue() {
wp_enqueue_script('br-script', get_stylesheet_directory_uri() . '/br-tagging.js', array('jQuery'));
}
add_action('wp_enqueue_scripts', 'br_enqueue');
function br_enqueue() {
wp_enqueue_script('br-script', get_stylesheet_directory_uri() . '/br-tagging.js', array('jquery'), '', false);
}
javascript文件似乎没有被排到Wordpress中。我在页眉的任何地方都找不到该文件。当我点击按钮时,它不工作
奇怪的是,如果我去掉wp\u enqueue\u脚本中的jQuery依赖项,就像这样:
add_action('wp_enqueue_scripts', 'br_enqueue');
function br_enqueue() {
wp_enqueue_script('br-script', get_stylesheet_directory_uri() . '/br-tagging.js');
}
然后,我返回了一个异常,声明未定义$
(如果JQuery未作为依赖项包含,您会想到这一点)。但是当我把它放回去的时候,没有错误,只是按钮不起作用,并且在标题中找不到脚本
知道发生了什么吗?我觉得我一定错过了一些非常简单的事情。我对Wordpress不是很有经验,所以我很难理解这一点。多谢各位 在wp\u enqueue\u脚本
函数的dependencies参数中,jQuery
需要全部小写jQuery
之后,我自己找到了答案。事实证明,WP提供的jQuery没有冲突,导致了这个问题。修复方法是将jQuery代码包装在(函数($){//code here})(jQuery)中代码>以使其工作
为了清楚起见。。。最终的代码如下所示:
functions.php
add_action('wp_enqueue_scripts', 'br_enqueue');
function br_enqueue() {
wp_enqueue_script('br-script', get_stylesheet_directory_uri() . '/br-tagging.js', array('jQuery'));
}
add_action('wp_enqueue_scripts', 'br_enqueue');
function br_enqueue() {
wp_enqueue_script('br-script', get_stylesheet_directory_uri() . '/br-tagging.js', array('jquery'), '', false);
}
JS-br tagging.JS
$(window).load(function() {
$("#br-button").click(function() {
alert("Hello World");
});
});
(function($) {
$(document).ready(function() {
$("#br-button").click(function() {
alert("Hello World");
});
});
}(jQuery));
做了这些之后,一切都很好 jquery需要小写:wp_enqueue_script('br-script',get_stylesheet_directory_uri()。/br tagging.js',array('jquery')代码>。另外,尝试将in_footer
参数设置为true<代码>wp_enqueue_script('br-script',get_stylesheet_directory_uri()。/br tagging.js',数组('jquery'),'',true)
我现在在文档中看到了这一点,但这只是带来了$is not defined
问题
在解决了jquery
的大小写敏感问题后,我自己发现了这个问题。谢谢你的帮助!