我试图击败一个基本手风琴风格的菜单,以提交-使用jQuery。
这是菜单:
http://www.cybart.com/bscg/
下面是一段代码片段,它为它提供了手风琴功能:
$('#access ul li').click(function(){
$('#access ul ul:visible').slideUp();
$(this).children('ul:hidden').slideDown();
});问题:单击子菜单链接会使子菜单滑动(并关闭).
当单击子菜单链接时,我希望保持子菜单打开,只有单击顶级链接时才能滑动。
如何选择顶部ul与jQuery动画子菜单?还是有办法选择子菜单链接,并“告诉它”,以保持子菜单打开点击?
我会感激你的智慧!
发布于 2011-07-09 04:53:44
似乎您需要在CSS中使用>运算符。
.foo > .bar选择类bar的所有元素,该类是具有类foo的元素的直接子元素。
明白了,工作密码:
$('#access ul.menu > li > a').click(function(){
$('#access ul ul:visible').slideUp();
$(this).siblings('ul').slideDown();
});
}); 为了防止菜单再次向上滑动,此操作如下:
$('#access ul.menu > li > a').click(function(){
var siblingUl = $(this).siblings('ul');
if(siblingUl.is(':visible')) { // The currently open menu was clicked
// Remove this if you want nothing to happen
siblingUl.slideUp();
return;
}
$('#access ul ul:visible').slideUp();
siblingUl.slideDown();
});
}); 发布于 2011-07-10 06:13:04
您不能停止关闭菜单,因为当您单击链接时,浏览器正在发出新的请求并重新加载菜单。看地址栏就行。单击子菜单链接时,URL将发生更改。
您需要在URL中添加一些内容,以阻止子菜单崩溃,或者测试URL以查看页面加载后是否应该重新打开手风琴。
发布于 2014-03-17 09:19:07
这件事简单得多,而且对我很管用。
$(".parent").click(function() {
$(this).children('ul').slideToggle();
});https://stackoverflow.com/questions/6632798
复制相似问题