我正在为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);
});
});
答案 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' ));