Бог я чувствую, что массово рассылаю stackoverflow, это - мое 3-е сообщение на сегодняшний день. Извините, heh.
Я даже отправил вопрос относительно этого прежде, отчасти, но я изменил код немного с тех пор, таким образом, я думал, что было лучше отправить новый вопрос.
$('.pmlist ul li h4 .toggle').click(function() {
$(this).closest('.meddel').toggle(250);
});
Это - то, что я имею теперь. Причина, почему самое близкое () метод не работает, состоит в том, потому что отделение .meddel только рядом с элементом H-4. И самый близкий () только проверяет право дерево DOM, игнорируя другие дочерние элементы.Правильно? родитель () работает почти то же и не работает также.
И поскольку я только хочу переключить самое близкое .meddel отделение в элементе, мне нужно что-то, что, да выгоняет, захватывает ближайший и не всех их.
Для разрешения его немного вот, HTML для одного элемента списка:
<li class="item">
<h4><a class="toggle">[topic]</a><small>2010-04-17 kl 12:54 by <u>[name]</u></small></h4>
<div class="meddel">
<span>
<img style="max-width: 70%; min-height: 70%;" src="profile-images/img.jpg" alt="" />
<a href="account.php?usr=47">[name]</a>
</span>
<p>text</p>
</div>
</li>
У меня есть несколько объектов как этот, и если я нажимаю на одну ссылку переключателя, я просто хочу, чтобы ближайший .meddel был переключен, как упомянуто прежде.
Спасибо.
Вот еще один способ приблизиться к этому:
$('.pmlist ul li h4 .toggle').click(function() {
$(this).closest('h4').siblings('.meddel').toggle(250);
});
Это подходит к
, а затем ищет родственный элемент
.meddel
для переключения. Подробнее о .siblings ()
можно прочитать здесь . Этот метод делает его более устойчивым к изменениям разметки, но если скрипт все равно сильно связан, это может не сильно беспокоить.
Вы можете просто использовать:
$(this).parent().next().toggle(250);
$(this).parents(".item").find(".meddel").toggle(250);
Это гораздо более гибкое и безопасное решение. Сначала он получает контейнер записи ( .item
), затем находит тело записи и переключает его. Он менее чувствителен к изменениям функций в DOM.
путь до элемента списка, затем найдите содержащийся элемент с соответствующим классом. Это будет более надежным в отношении большинства незначительных изменений DOM, то есть не зависит от относительного размещения.
$('.pmlist ul li h4 .toggle').click(function() {
$(this).closest('li').find('.meddel').toggle(250);
});