代码之家  ›  专栏  ›  技术社区  ›  StormShadow

不能只将“return false”限制为父元素;希望子元素返回true!

  •  1
  • StormShadow  · 技术社区  · 15 年前

    这是我第一次来这里,希望我不要表现得太愚蠢!

    我有一个非常简单的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: 首先,把所有的东西都藏起来。孩子们在里面。猫的东西; 第二,应用一个toggle函数,只对那些li.cat项使用ul.children,并返回false,将链接保留在其默认函数中。

    <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;
        });
    });
    

    问题是,“返回错误”将应用于容器li中的所有内容,而我所做的一切似乎都无法将它们排除在选择之外。有人知道我做错了什么吗?

    提前谢谢

    1 回复  |  直到 15 年前
        1
  •  0
  •   StormShadow    15 年前

    成功了。

    <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;
        });
    });
    

    我必须瞄准李中的“A”标签,而不是李本身。