Выберите только дочерний элемент UL элемента LI - PullRequest
1 голос
/ 05 июня 2011

Я хочу сделать что-то похожее на древовидное представление (действительно проще) ..

Это мое усилие: (Когда я нажимаю первый «родительский элемент», все идет хорошо и обнаруживается его «сын»)., но когда я щелкаю сына, который также является «родительским элементом», он переключается обратно ..

Поэтому я хочу что-то подобное closest(), но для детей вместо родителей ..

jquery:

$(document).ready(function () {
        $('#nav .parent-item').click(function () {
            $(this).children('ul').slideToggle();
        });
    });

html:

<ul id="nav">
<li>Atividade Recente</li>
<li class="parent-item">Projetos</a>
    <ul>
        <li class="parent-item"><a href="#">Renavam</a>
            <ul>
                <li>Atividade Recente</li>
                <li>Conversação</li>
                <li>Tarefas</li>
                <li>Pessoa & Permissões</li>
            </ul>
        </li>
    </ul>
</li>
<li><a href="#">Minhas atividades</a></li>

Ответы [ 3 ]

4 голосов
/ 05 июня 2011

Использовать

$(this).find('ul').first();

Он находит все ul ниже контекста, а метод first () ограничивает его только первым

1 голос
/ 05 июня 2011

Нет функции child, но children & (опечатка в вопрос)

Вы должны return false; в конце функции, иначе щелчок будет передан от детей к их родителям, поэтому вам кажется, что родитель переключает:

$('#nav .parent-item').click(function() {
    $(this).children('ul').slideToggle();
    return false;
});

jsfiddle: http://jsfiddle.net/QHr2r/1/

1 голос
/ 05 июня 2011

Попробуйте это:

$(document).ready(function () {
        $('#nav .parent-item').click(function () {
            $(this).children('ul').slideToggle();
            return false;
        });
       $('#nav li:not(".parent-item")').click(function(){
         return false;
       });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...