JQuery: переключать детей по клику - PullRequest
1 голос
/ 08 ноября 2010

что js / jquery код сделает из списка ниже, чтобы переключать дочерние элементы при нажатии «+»?

<ul>  
<li id="1" parent="0"><a href="#">1</a></li>  
    <li id="2" parent="0"><a href="#"> + </a><a href="#">2</a>  
        <ul parent="2">  
            <li id="23" parent="2"><a href="#">2.1</a></li>  
            <li id="50" parent="2"><a href="#"> + </a><a href="#">2.2</a>  
                <ul parent="50">  
                    <li id="123" parent="50"><a  href="#">2.50.1</a></li>  
                </ul>  
            </li>  
        </ul>  
    </li>
</ul>

Ответы [ 2 ]

5 голосов
/ 08 ноября 2010

Вы можете использовать .toggle() или .slideToggle() с .siblings(), например:

$("ul a:contains( + )").click(function() {
  $(this).siblings("ul").toggle();
});

Вы можете проверить это здесь .Обратите внимание, что хотя ваши идентификаторы и атрибуты недействительны, вы можете использовать data- атрибуты здесь.Кроме того, я предлагаю предоставить этим + ссылкам класс, чтобы сделать селектор намного более эффективным, например:

<a href="#" class=".toggle"> + </a>

Затем связать так:

$("ul a.toggle").click(function() {
  $(this).siblings("ul").toggle();
});
0 голосов
/ 08 ноября 2010

как то так

$("ul a:contains('+')").click(function () {
  var $this = $(this);
  $this.siblings("ul").show();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...