我有这个菜单,我的问题是,我需要它的行为,以便它只在点击父菜单项时切换。现在你可以通过点击身体上的某个地方关闭下拉菜单,这不是我想要的行为。只有在点击父菜单项时,下拉菜单才会关闭。可能?怎么样?Bootstrap下拉防止切换身体点击?
HTML:
<div class="navigation">
<ul class="menu nav">
<li class="first expanded dropdown"><span title="" class="active-trail dropdown-toggle nolink" data-target="#" data-toggle="dropdown">Ekonomiförvaltning <span class="caret"></span></span>
<ul class="dropdown-menu">
<li class="first leaf"><a href="#" title="">Ekonomiförvaltning</a></li>
<li class="leaf"><a href="#" title="">Redovisningstjänster</a></li>
<li class="leaf"><a href="#" title="">Controller-tjänst</a></li>
<li class="leaf"><a href="#" title="">Disponenttjänster</a></li>
<li class="leaf"><a href="#" title="">Skatterådgivning & lagtjänster</a></li>
<li class="last leaf"><a href="#" title="">Företagsförvärv</a></li>
</ul>
</li>
<li class="expanded dropdown"><span title="" data-target="#" class="dropdown-toggle nolink" data-toggle="dropdown">Lönehantering <span class="caret"></span></span>
<ul class="dropdown-menu">
<li class="first leaf"><a href="#" title="">Lönehantering</a></li>
<li class="leaf"><a href="#" title="">Löneberäkning</a></li>
<li class="leaf"><a href="#" title="">HR-tjänster</a></li>
<li class="last leaf"><a href="#r" title="">Reseräkningar</a></li>
</ul>
</li>
<li class="last expanded dropdown"><span title="" data-target="#" class="dropdown-toggle nolink" data-toggle="dropdown">Programvaror <span class="caret"></span></span>
<ul class="dropdown-menu">
<li class="first leaf"><a href="#" title="">Programvaror</a></li>
<li class="leaf"><a href="#" title="">Löneprogram</a></li>
<li class="leaf"><a href="#" title="">ERP-affärssystem</a></li>
<li class="last leaf"><a href="#" title="">Personaladministration</a></li>
</ul>
</li>
</ul>
</div>
的Jquery:
$('.dropdown').on('show.bs.dropdown', function() {
$(this).find('.dropdown-menu').first().stop(true, true).slideDown();
$(this).find('a.dropdown-toggle').removeAttr('data-toggle');
});
$('.dropdown').on('hide.bs.dropdown', function(){
$(this).find('.dropdown-menu').first().stop(true, true).slideUp();
});
谢谢!这完美的作品! – iamfredrik
@iamfredrik不客气 – gaetanoM
这是干扰我的覆盖,但更改$(this).closest()到$(e.target).closest()似乎已经工作。 – iamfredrik