Fiddle DEMO
更改的標記
加入ul
代替li
作爲ul
不能直接包含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()
:has()
這不是有效的標記。您不能將'ul'作爲另一個'ul'的孩子。 – ahren
至少這個[page](http://csswizardry.com/demos/css-dropdown/)已通過W3C驗證 – Robert002