我的菜单如下:
<ul class="product-categories">
<li>
<a href="http://...">Test</a>
<ul class="children">
<li><a href="http://...">Test2</a></li>
</ul>
</li>
<li><a href="http://...">Test3</a></li>
</ul>
脚本:
jQuery(function () {
jQuery('.product-categories>li>ul').hide();
if (jQuery('.product-categories>li').find('ul.children').length > 0) {
jQuery(this).find('a').removeAttr('href');
jQuery('.product-categories>li').on('click', function () {
jQuery(this).find('ul').slideToggle(500)
.siblings().find('ul:visible').slideUp(500);
jQuery(this).toggleClass("active");
});
}
});
我遇到了javascript的问题。我想查看子菜单是否从父li中删除链接并在点击时显示/隐藏子菜单。有人可以帮忙解决这个问题吗?
如果我改变:
jQuery(this).find('a').removeAttr('href');
为:
jQuery('.product-categories>li>a').removeAttr('href');
它会删除所有父href
个链接的Attr li
,而不仅仅是在工作的位置。
我只是创建代码(并显示/隐藏工作,但我不知道如何仅在子菜单时删除链接):
jQuery('.product-categories>li>ul').hide();
jQuery('.product-categories>li').children('a').removeAttr('href');
jQuery('.product-categories>li').on('click',function(){
if (jQuery(this).find('ul.children').length > 0) {
jQuery(this).find('ul').slideToggle(500)
.siblings().find('ul:visible').slideUp(500);
jQuery(this).toggleClass("active");
}
});
答案 0 :(得分:0)
你可以这样做:jQuery('ul li ul').prev('a').removeAttr('href')
。
它会检查您是否嵌套了ul
,并从该a
之前的ul
标记中删除了该属性。