Jquery слайд-ноты первых дочерних элементов уровня - PullRequest
1 голос
/ 13 сентября 2010

У меня есть один класс div ('open'), который содержит другой класс div ('items'), например:

<div class="open">
    <div class="item">
    this is a test 1
    </div>

    <div class="item">
    this is a test 2
    </div>
</div>

То, что я хочу сделать, - это скольжение всех элементов div класса 'item', находящихся в классе open, по которому щелкнули.

Пока у меня есть

$(document).ready(function () {

    $('.open').click(function () {

        $(this).find(':first-child').slideDown('1000');

    });

но это не работает. Есть предложения?

Спасибо, John

Ответы [ 3 ]

4 голосов
/ 13 сентября 2010

Вместо :first-child вы хотите непосредственных детей , которые вы можете получить в этом случае, используя .children(), например:

$('.open').click(function () {
  $(this).children().slideDown('1000');
});

:first-child предназначен для получения первого дочернего элемента на каждом уровне (и в каждой «ветви»), .children() или селектора дочерних элементов (>) предназначены для получения всех непосредственных детей / детей "первого уровня".

2 голосов
/ 13 сентября 2010

Как насчет

$(".open").click(function() {
    $(this).children().slideDown(1000);
});
0 голосов
/ 13 сентября 2010

Во-первых, я предполагаю, что вы фактически закрываете $(document).ready, поскольку в кодовом блоке, который вы разместили, он не закрыт. Убедитесь, что вы делаете это в своем коде.

Во-вторых, разве вы не ищете children() из .open? В каком случае вы хотите

$(document).ready(function() {
  $('.open').click(function() {
    $(this).children('.item').slideDown('1000');
  });
});

Отредактировано : Благодаря комментариям я удалил предложение live().

...