下面的代码在第一个下拉菜单中正常工作(将第一个锚定网址更改为#),但在第二个下拉菜单中却无效:
if($(window).width() >= 1000){
$('#main-menu li:has(.dropdown-menu)').hover(function (event) {
if ($(event.target).parents('.dropdown-menu').length > 0) {
event.stopPropagation();
} else {
$(this).find('a:first').attr('href','#');
event.preventDefault();
}
});
}
输出:
<ul id="main-menu">
<li><a href="#">Uudised</a>
<ul class="dropdown-menu">
<li><a href="https://eoy.ee/oosorr/uudised/?c=sorri-aasta-uudised">Sorri aasta uudised</a></li>
<li><a href="https://eoy.ee/oosorr/uudised/?c=teadusuudised">Teadusuudised</a>
<ul class="dropdown-menu">
<li><a href="https://eoy.ee/oosorr/uudised/?c=content">Content</a></li>
<li><a href="https://eoy.ee/oosorr/uudised/?c=site-design">Site design</a</li>
</ul>
</li>
</ul>
</li>
</ul>
但是我想要:
<ul id="main-menu">
<li><a href="#">Uudised</a>
<ul class="dropdown-menu">
<li><a href="https://eoy.ee/oosorr/uudised/?c=sorri-aasta-uudised">Sorri aasta uudised</a></li>
<li><a href="#">Teadusuudised</a>
<ul class="dropdown-menu">
<li><a href="https://eoy.ee/oosorr/uudised/?c=content">Content</a></li>
<li><a href="https://eoy.ee/oosorr/uudised/?c=site-design">Site design</a</li>
</ul>
</li>
</ul>
</li>
</ul>
尝试了这个,但不起作用:
$('#main-menu li:has(.dropdown-menu),#main-menu > li > ul > li:has(.dropdown-menu)').hover(function (event) {....
答案 0 :(得分:0)
您正在使用$(this).find('a:first')查找列表中的第一个元素。尝试从中删除':first',看看是否有帮助。