Fiddle DEMO
更改标记
添加ul
而不是li
asul
不能直接包含ul
<div id="menu">
<ul>
<li><a href="#">Menu Item 1</a>
<ul id="submenu"> <!-- added ul instead of li -->
<li><a href="#">Submenu Item 1</a>
</li>
<li><a href="#">Submenu Item 2</a>
</li>
</ul>
</li>
<li><a href="#">Menu Item 2</a>
</li>
<li><a href="#">Menu Item 3</a>
</li>
</ul>
</div>
<div id="right">
<button type="button" id="button">Menu</button>
</div>
JS
$('#menu li:has("ul")').children('ul').hide(); //hide submenu
$('#button').toggle(
function () {
$('#right').animate({
left: 150
});
},
function () {
$('#right').animate({
left: 0
});
});
$('#menu li:has("ul")').click(function(){
$(this).children('ul').slideToggle(); //toggle submenu
});
参考
.slideToggle()
:拥有()