У меня здесь есть петля foreach. Для каждого объекта, который он печатает, есть раздел комментариев, который можно развернуть/скомпоновать.Класс JQuery против ID
Проблема у меня есть, когда я нажимаю «Развернуть все» для элемента, он разворачивает комментарии для КАЖДОГО элемента в цикле все сразу. Принимая во внимание, что я хочу видеть комментарии только для этого конкретного элемента.
Я знаю, что это как-то связано с идентификаторами и классами, но у меня нет опыта работы с JQuery. Так что, пожалуйста, помогите!
<?php
foreach ($items as $item) {
echo item['comment'];
echo $item['full_name']; ?>
<div id="listContainer">
<div class="listControl">
<a class="expandList">Expand All</a>
<a class="collapseList">Collapse All</a>
</div>
<ul class="expList">
<li>Item A
<ul>
<li>Item A.1
<ul>
<li><span>fidjis</span></li>
</ul>
</li>
<li>Item A.2</li>
<li>Item A.3
<ul>
<li><span>iejowejfiojwiefj.</span></li>
</ul>
</li>
</ul>
</li>
<li>Item B</li>
<li>Item C
<ul>
<li>Item C.1</li>
<li>Item C.2
<ul>
<li><span>sdfkjksdjfnjkdsfnjn</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<?php
}
?>
и вот Jquery:
function prepareList() {
$('.expList').find('li:has(ul)')
.click(function(event) {
if (this == event.target) {
$(this).toggleClass('expanded');
$(this).children('ul').toggle('medium');
}
return false;
})
.addClass('collapsed')
.children('ul').hide();
//Create the button functionality
$('.expandList')
.unbind('click')
.click(function() {
$('.collapsed').addClass('expanded');
$('.collapsed').children().show('medium');
})
$('.collapseList')
.unbind('click')
.click(function() {
$('.collapsed').removeClass('expanded');
$('.collapsed').children().hide('medium');
})
};
Ваш HTML-код недействителен. – max
Я только отображал часть своего кода. У меня есть вопрос! –
Да, но ваши списки недействительны, я бы рекомендовал сначала исправить это, поскольку это даст вам все виды странности. Весь текст в UL должен находиться в LI. – max