这是我第一次来这里,所以我希望我不要太傻了!
我有一个非常简单的jQuery问题:我有一个数据库生成的基于ul的导航,我想要包含其他列表的列表项来切换显示那些包含的列表。 (生成的)列表看起来像这样(Wordpress代码;忽略日语):
<div class="block first">
<ul class="counts">
<li class="cat-item cat-item-43">
<a href="http://localhost/crg/?cat=43" title="View all posts filed under その他制作物">その他制作物</a>
</li>
<li class="cat-item cat-item-3">
<a href="http://localhost/crg/?cat=3" title="View all posts filed under クライアント">クライアント</a>
<ul class='children'>
<li class="cat-item cat-item-4">
<a href="http://localhost/crg/?cat=4" title="View all posts filed under マイクロソフト">マイクロソフト</a>
</li>
<li class="cat-item cat-item-9">
<a href="http://localhost/crg/?cat=9" title="View all posts filed under 夢">夢</a>
</li>
<li class="cat-item cat-item-8">
<a href="http://localhost/crg/?cat=8" title="View all posts filed under 生">生</a>
</li>
</ul>
</li>
</ul>
这是我写给的jQuery: 首先,将所有ul.children隐藏在li.cat-item中; 其次,将toggle函数和return false应用于只有那些有ul.children的li.cat-item,将链接保留在默认函数中。
<script type="text/javascript">
$(document).ready(function() {
var children = $("li.cat-item:has(ul.children)>ul.children").hide();
$("li.cat-item:has(ul.children)").click(function(){
$(this).find('ul.children').toggle();
return false;
});
});
问题是,“return false”正在应用于容器li中的所有内容,而我所做的一切似乎都将它们从选择中排除。谁知道我做错了什么?
提前致谢
答案 0 :(得分:0)
做到了。
<script type="text/javascript">
$(document).ready(function() {
var children = $("li.cat-item:has(ul.children)>ul.children").hide();
$("li.cat-item:has(ul.children) > a").click(function(){
$(this).siblings('ul.children').toggle();
return false;
});
});
我必须在li中定位“a”标签,而不是li本身。