这个元素的目的是建立一个完全基于简单无序列表的可折叠的导航系统。 默认情况下,所有的嵌套列表将被隐藏,而.toggle divs(按钮)将被附加到包含嵌套列表的li项目上。 这些.toggle divs应该隐藏/显示嵌套列表,并对切换按钮应用一个类别。
我通过手动插入.toggle div(用[toggle div]注明的位置)来测试这段代码,一切都能完美运行。 但是,当它通过append()添加时,似乎没有任何效果。 有谁知道是什么导致了这个问题? 如果有任何帮助,我们将不胜感激--谢谢!
HTML。
<div id="nav">
<li><a href="#">nav item</a>[toggle div]
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a>[toggle div]
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
<li><a href="#">nav item</a></li>
jQuery。
$(function(){
$("#nav ul li").has("ul").append("<div class='toggle'></div>");
$(".toggle").live("click", function() {
if($(this).next().is(":hidden")) {
$(this).next().show();
$(this).addClass("toggled");
} else {
$(this).next().hide();
$(this).removeClass("toggled");
试试这个。
$("#nav li > ul").before('<div class="toggle"></div>');
如果将选择所有直接嵌套在
元素中的<li>
元素,并在每个元素前面添加<ul>
。<div>
请看一下演示:http://jsfiddle.net/xXRSZ/1/