我试图向主菜单中的元素添加一个类,但什么都没有发生。我使用的是下划线起始主题,标题中有这个。php:
<?php
wp_nav_menu( array(
\'theme_location\' => \'menu-1\',
\'menu_id\' => \'primary-menu\',
\'after\' => \'<span class="fa fa-times"></span>\',
) );
?>
然后我把这个放在导航中。js文件(也尝试在footer.php中内联):
$(".menu-item-has-children .span").click(function() {
$(".menu-item-has-children .sub-menu").removeClass("toggled");
$(this).next(".sub-menu").toggleClass("toggled");
});
但什么都没发生。我还尝试了一个简单的方法:
$(\'body\').click(function() {
alert("Yeah!");
});
那里也没有发生任何事情。这确实有效:
window.onload = function() {
alert("Yeah!");
}
jQuery正在加载:
<script type=\'text/javascript\' src=\'http://example.com/wp-includes/js/jquery/jquery.js?ver=1.12.4\'></script>
导航。js在函数中排队。php:
function themename_scripts() {
wp_enqueue_style( \'themename-style\', get_stylesheet_uri() );
wp_enqueue_script( \'themename-navigation\', get_template_directory_uri() . \'/js/navigation.js\', array(), \'20151215\', true );
wp_enqueue_script( \'themename-skip-link-focus-fix\', get_template_directory_uri() . \'/js/skip-link-focus-fix.js\', array(), \'20151215\', true );
if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
wp_enqueue_script( \'comment-reply\' );
}
}
add_action( \'wp_enqueue_scripts\', \'themename_scripts\' );
。。。那么我犯了什么基本错误呢?
最合适的回答,由SO网友:Johansson 整理而成
您还没有将jquery作为脚本的依赖项传递,您也在使用美元符号,由于冲突,WordPress不直接支持美元符号。
首先,在排队时将jQuery作为一个要求传递给navigation.js
:
wp_enqueue_script(
\'themename-navigation\',
get_template_directory_uri() . \'/js/navigation.js\',
array(\'jquery\'),
\'20151215\',
true
);
然后,将代码包装在一个自调用函数中:
(function($){
// You have access to $ here
})(jQuery);
或者更好的是,定义
$
:
var $ = jQuery.noConflict();
$(\'body\').click(function() {
alert("Yeah!");
});
完成。