jQuery('.query-links ul').click(function() {
if (jQuery('.child-posts').length == 1) {
jQuery('.child-posts').slideToggle(200);
}
else {
jQuery('.child-posts.opened').slideToggle(200).removeClass('opened');
jQuery(this).closest('ul').find('.child-posts').slideToggle(200).addClass('opened');
}
return false;
});
以下是Fiddle
我有这个运行侧边栏菜单的JQuery代码,一切都运行良好,但是当子菜单打开时,如果单击它没有关闭,它会再次打开。如果菜单在打开时点击它,我希望菜单关闭。任何帮助将不胜感激,谢谢。 - 杰森
更新:代码的第一部分处理的菜单实例只有一个.child-posts DIV。根据附加到各自类别的POSTS,菜单是不同的。 (WordPress的)
答案 0 :(得分:0)
您需要定位所点击的.childpost
下的当前ul
:
if (jQuery(this).find('.child-posts').length == 1) {
jQuery(this).find('.child-posts').slideToggle(200);
}
<强> Updated Fiddle 强>
编辑:您可以将代码缩短为:
jQuery(document).ready(function($){
$('.query-links ul').click(function() {
var childPost = $(this).find('.child-posts');
$('.child-posts').not(childPost).slideUp().removeClass('opened');
childPost.addClass('opened').slideToggle();
});
});
<强> Updated Fiddle 强>