我有一个简单的下拉菜单。点击.drop-down
后,子菜单会向下滑动。但是,如果您点击.drop-down
的任何子项,它会再次向上滑动。我只想要点击的.drop-down
来滑动菜单,而不是它的后代。
这里有效:http://jsfiddle.net/tmyie/uXn5k/2/
<ul>
<li class="drop-down">
<a href="#"> Main </a>
<ul class="sub-menu">
<li><a href="#">Sub</a> </li>
<li><a href="#">Sub</a> </li>
<li><a href="#">Sub</a> </li>
</ul>
</li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
</ul>
的jQuery
$( ".drop-down" ).click(function() {
$('.sub-menu').slideToggle();
});
$('.drop-down').fadeTo('slow', 0.3);
答案 0 :(得分:2)
专门定位a
$( ".drop-down>a" ).click(function() {
$('.sub-menu').slideToggle();
});
$('.drop-down').fadeTo('slow', 0.3);
或者,只需将课程从li
移至a
<ul>
<li>
<a href="#" class="drop-down"> Main </a>
<ul class="sub-menu">
<li><a href="#">Sub</a> </li>
<li><a href="#">Sub</a> </li>
<li><a href="#">Sub</a> </li>
</ul></li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
<li><a href="#">Main</a> </li>
</ul>
编辑:
顺便说一句,使用此脚本会导致多个下拉列表遇到问题。考虑进行以下更改:
$( ".drop-down>a" ).on("click", function() {
$(this).siblings('.sub-menu').slideToggle();
});
$('.drop-down').fadeTo('slow', 0.3);