Wordpress插件不加载jQuery

时间:2015-10-26 12:23:52

标签: php jquery wordpress

我正在为Wordpress中的网站构建一个FAQ插件,但jQuery没有加载。当我试图隐藏联系表单上的提交按钮并且不得不用CSS隐藏它时,我遇到了同样的问题。还应该说我是jQuery的新手,我可能错过了一些东西。谢谢!

PHP:

    wp_register_script( 'javascript', plugins_url('js/javascript.js',__FILE__ ));
    wp_enqueue_script('javascript');

echo '<div class="qaleft">' . '<div class="toggle">' . '<h3>' . $post_titles . '</h3>' . '<div class="toggle-info">' . '<p>' . $post_content . '</p>' . '</div>' . '</div>' . '</div>';

jQuery的:

$(function(){
 $('.toggle h3').on('click', function(e){
    var answer = $(this).next('.toggle-info');

    if(!$(answer).is(":visible")) {
      $(this).parent().addClass('open');
    } else {
      $(this).parent().removeClass('open');
    }
    $(answer).slideToggle(300);
  });
});

1 个答案:

答案 0 :(得分:2)

在Wordpress中,jQuery不使用冲突模式,因此在尝试时不能使用美元符号。

要修复使用全名并将美元作为参数传递:

jQuery(function($){
 //from here on you can use $ as a placeholder to jQuery, as you normally do
 $('.toggle h3').on('click', function(e){
    var answer = $(this).next('.toggle-info');

    if(!$(answer).is(":visible")) {
      $(this).parent().addClass('open');
    } else {
      $(this).parent().removeClass('open');
    }
    $(answer).slideToggle(300);
  });
});

此外,在注册自定义脚本时,请确保通过将其包含在dependancy参数中来加载jquery:

wp_register_script( 'javascript', plugins_url('js/javascript.js',__FILE__ ), array( 'jquery' ));