Ne peut pas limiter « return false » à l'élément parent uniquement; voulons que les enfants retournent vrai!
-
23-09-2019 - |
Question
Ceci est ma première fois ici, donc j'espère que je ne viens pas de trop stupide!
J'ai un problème jQuery très simple: j'ai une base de données générée par la navigation ul-base et je veux des éléments de liste qui contiennent d'autres listes pour basculer montrant les listes contenaient. Les listes (générés) ressemblent à ceci (code Wordpress, ignorer les Japonais):
<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>
Et voici le jQuery je l'ai écrit à: Tout d'abord, cacher tous les années ul.children à l'intérieur de li.cat-point; En second lieu, appliquer une fonction de bascule et de retour faux uniquement les li.cat-élément qui ont ul.children, en laissant les liens à l'intérieur de leur fonction par défaut.
<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;
});
});
Le problème est, le « return false » est appliqué à se tout à l'intérieur du récipient de li et rien que je ne semble les exclure de la sélection. Tout le monde sait ce que je fais mal?
Merci d'avance
La solution
-t-il.
<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;
});
});
Je devais cibler l'étiquette "a" dans le li, li pas lui-même.