Kann nicht nur „return false“ zu übergeordnetes Element begrenzen; Kinder wollen true zurück!

StackOverflow https://stackoverflow.com/questions/2543321

  •  23-09-2019
  •  | 
  •  

Frage

Dies ist mein erstes Mal hier, damit ich hoffe ich zu dumm, nicht abgehen!

Ich habe ein sehr einfaches jQuery Problem: Ich habe eine Datenbank generierte ul-basierte Navigation und ich mag Listenelemente, die anderen Listen enthalten hin- und herzuschalten, diese enthielten Listen zeigen. Die (generiert) Listen so aussehen (Wordpress-Code, ignorieren die Japaner):

<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>

Und hier ist die jQuery Ich schrieb: Erstens, alle ausblenden ul.children der Innenseite li.cat-Elements; Zweitens gilt eine Umschaltfunktion und eine Rückkehr falsch jenes li.cat-Element nur an dem ul.children hat, die Standardfunktion die Links innen zu verlassen.

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

Das Problem ist, die „return false“ wird immer auf alles angewandt Inneren der Behälter li und nichts, was ich tun scheint sie aus der Auswahl auszuschließen. Jeder weiß, was ich falsch mache?

Vielen Dank im Voraus

War es hilfreich?

Lösung

Habe es.

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

Ich hatte den "einen" Tag innerhalb des li Ziel, nicht die li selbst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top