在页面中使用JavaScript和JQuery

时间:2017-11-09 作者:Michael

因此,我在一个按钮上取得了进展,该按钮在像这样单击一段时间后消失:https://codepen.io/mso122591/pen/qVZYNN

问题是,这种方法使用jquery,而我似乎无法在wordpress中使用它。

以下是一些让jquery在wordpress中工作的资源(我注意到您必须将最初的$替换为jquery,并且可能需要wp\\u enqueue\\u脚本),但我发现这有点令人困惑。

1.https://codex.wordpress.org/Using_Javascript#JavaScript_in_Posts2.https://stackoverflow.com/questions/11159860/how-do-i-add-a-simple-jquery-script-to-wordpress3.https://premium.wpmudev.org/blog/adding-jquery-scripts-wordpress/4.https://digwp.com/2009/06/including-jquery-in-wordpress-the-right-way/

have 能够在wordpress中使用javascript,所以我尝试使用JS获得相同的结果,

所以我尝试用JS代码得到同样的结果:https://codepen.io/mso122591/pen/rYWXJQ

但它在wordpress中也不起作用。

wordpress似乎很挑剔,因为它在wordpress中起作用:

JavaScript警报试一试

函数myFunction(){警报(“我是警报框!”);}

And this does not work:

JavaScript警报试一试

函数myFunction(){警报(“我是警报框!”);}//注意,这个有额外的空间

有没有办法让按钮在wordpress中工作?我是否遗漏了Javascript必须如何构造或如何使JQuery工作?

2 个回复
SO网友:Frank P. Walentynowicz

基于中的代码https://codepen.io/mso122591/pen/qVZYNN, 在帖子或页面上放置按钮:

<button>Join booth</button>
请注意id="myBtn" 已从中删除<button> 标记,因为jQuery脚本通过其标记而不是id来定位按钮。

现在,我们将使用wp_footer 操作挂钩,将jQuery脚本内联插入页脚。将此代码放入functions.php 您的主题(最好是儿童主题):

function wpse_insert_script() {
    echo \'<script>
jQuery(document).ready(function($){
  $("button").click(function(){
    $("button").hide();
    $("button").show(8000)
  });
});
</script>\';
}
add_action(\'wp_footer\', \'wpse_insert_script\');
请注意,首先$ 在我们最初的剧本中,这个角色被替换为jQuery (区分大小写)。这是必要的,因为WordPress以无冲突模式运行jQuery。首次出现function() 已替换为function($), 宣布$ 作为别名的字符jQuery, 因此可以在脚本的以下行中使用它。

SO网友:Bjorn

jQuery在WP中默认处于活动状态,无需启用它。

有两种方法可以在WP中包含您自己的jQuery:

将您自己包含jQuery(首选方法)的文件排队wp_headwp_footer 动作挂钩,将脚本包含在jQuery中我只想解释如何将脚本排入WP中。

但首先,如果您想包含自己的文件,最好激活一个子主题。为什么?因为子主题中的更改不会被更新覆盖。有关子主题的更多信息,请参见:https://codex.wordpress.org/Child_Themes

几乎每个专业主题都包含子主题,只需将其上载到主题目录并在WP中激活即可。

下面是带有警报的简单jQuery文件的内容。

jQuery(document).ready(function ($) {
    alert("I am an alert box!");
}
如您所见$ 包含在函数中,无需将其替换为jQuery. &保存;将文件上载到子主题目录。

下一步:您需要告诉WP包含此文件。打开functions.php 在您的孩子主题中。添加以下功能:

add_action( \'wp_enqueue_scripts\', \'michael_enqueue_my_script\');
function michael_enqueue_my_script() {
    wp_register_script( \'my_test_script\', get_stylesheet_directory_uri() . \'/your-file-name.js\', array(\'jquery\'), \'0.0.1\', true );
    wp_enqueue_script( \'my_test_script\' );
}
我包括了michael 在函数名中,因为必须小心,所以不能创建重复的全局函数名。

当您将这样的文件排队时,很容易添加条件逻辑。以下示例仅在主页上加载您的文件:

add_action( \'wp_enqueue_scripts\', \'michael_enqueue_my_script\');
function michael_enqueue_my_script() {
    wp_register_script( \'my_test_script\', get_stylesheet_directory_uri() . \'/your-file-name.js\', array(\'jquery\'), \'0.0.1\', true );
    if( is_home() ) {
        wp_enqueue_script( \'my_test_script\' );
    }
}
谨致问候,

比约恩

结束

相关推荐

将PHP数组转换为jQuery数组“未捕获语法错误:意外标记<”

我试图将我的php数组传递给jQuery数组,但我在chrome控制台上遇到了这个错误,未捕获语法错误:意外的标记<;功能。php/*Call Jquery for dropdowns*/ function mytheme_custom_scripts(){ if ( is_page(\'Support\')) { $scriptSrc = get_stylesheet_directory_uri() . \'/js/freshdeskdata.