我正在开发其采用了自建jQuery的手风琴用于导航的WordPress的主题:为什么我的jQuery的preventDefault()工作不正确?
// jQuery Footer Navigation Slide
jQuery('#footer-accordion > li > a').on('click', function(e){
if(jQuery(this).parent().has('ul')) {
e.preventDefault();
if(!jQuery(this).hasClass('open')) {
jQuery('#footer-accordion li ul').slideUp(350);
jQuery('ul li a').removeClass('open');
jQuery(this).next('ul').slideDown(350);
jQuery(this).addClass('open');
} else if(jQuery(this).hasClass('open')) {
jQuery(this).removeClass('open');
jQuery(this).next('ul').slideUp(350);
}
}
});
,我现在可是有麻烦它整合到这个工作就好了,当我在裸HTML建是我的WordPress的主题。看起来e.preventDefault()
我在里面也有防止菜单项(ul li a
)内没有ul
里面的默认(按照链接)。我想我的选择器很好,因为它在我的HTML中工作。
简而言之:如果我点击一个ul li a
,其中li
没有嵌套ul
,我希望定向到一个页面。但是,当我这样做的时候没有任何反应。 .slideUp()
函数工作得很好,我可以单击嵌套的ul
中的链接。我的选择器错了吗?我是否给wp_nav_menu()
函数提供了错误的变量?
这是有关部分从footer.php
:
<?php wp_nav_menu(array(
'container_class' => 'footer-navigation clearfix',
'menu_id' => 'footer-accordion'
)); ?>
这是WordPress的做的什么:http://jsfiddle.net/vKmfu/
为什么你不使用'wp_nav_menu'的自定义Walker类? – mate64
因为我不知道如何。这似乎是更简单的解决方案。 –