JQuery Slidedown первые элементы дочернего уровня
Вопрос
У меня есть один класс Divs («открытых»), содержащий другой класс Divs («предметы»), как это:
<div class="open">
<div class="item">
this is a test 1
</div>
<div class="item">
this is a test 2
</div>
</div>
То, что я хочу сделать, это Slidedown всей «элемента» класса Divs, которые находятся в классе «Открытый», который нажал.
До сих пор у меня есть
$(document).ready(function () {
$('.open').click(function () {
$(this).find(':first-child').slideDown('1000');
});
Но это не работает. Какие-либо предложения?
Спасибо, Джон
Решение
Вместо :first-child
вы хотите непосредственные дети, который вы можете получить в этом случае, используя .children()
, как это:
$('.open').click(function () {
$(this).children().slideDown('1000');
});
:first-child
Для получения первого дочернего элемента на каждом уровне (и в каждой «ветви»), .children()
или детский селектор (>
) Для получения всех немедленных / «первого уровня» детей.
Другие советы
Как насчет
$(".open").click(function() {
$(this).children().slideDown(1000);
});
Во-первых, я предполагаю, что вы на самом деле закрываете $(document).ready
, поскольку в блоке кода вы разместили, он не закрыт. Убедитесь, что вы делаете это в вашем коде.
Во-вторых, ты не просто ищешь children()
из .open
? В этом случае вы хотите
$(document).ready(function() {
$('.open').click(function() {
$(this).children('.item').slideDown('1000');
});
});
Отредактировано: Благодаря комментариям я удалил live()
предположение.