JQuery переключаться на каждом? - PullRequest
0 голосов
/ 12 ноября 2009

Я использую jquery для переключения некоторых абзацев. это довольно легко с одним абзацем, но сказать, что у меня есть очень общая настройка. второй абзац изначально скрыт с помощью css.

<p>some text</p>
<p>some more text</p>
<a href="#" class="more">read more</a>

<p>some text</p>
<p>some more text</p>
<a href="#" class="more">read more</a>

Проблема в том, что каждый раз, когда я нажимаю на одну из ссылок «читать дальше», она показывает каждый второй абзац. я бы просто хотел, чтобы он показывал второй абзац одного кликаемого.

очень плохо знаком с jquery ...

Ответы [ 2 ]

2 голосов
/ 12 ноября 2009

Сначала оберните ваши <p> теги в div примерно так:

<div class='toggleable'>
  <p>some text</p>
  <p>some more text</p>
  <a href="#" class="more">more/less</a>
</div>

С некоторыми CSS:

.toggleable p {
  display: none;
}

Тогда jQuery:

$('.toggleable a.more').click( function() {
  $(this).siblings('p').toggle();
} );

Должен справиться с этим.

Конечно, есть и другие способы решения этой проблемы. Может быть, вы могли бы поместить ссылки вне div с текстом и затем сделать что-то вроде: $('.more').click( function() { $(this).prev().toggle(); } ); ... Множество подходов Взгляните на методы обхода JQuery .

0 голосов
/ 12 ноября 2009

извините, я думаю, что я, возможно, испортил структуру. его

<p>some text</p> 
<div class="bio> 
<p>some more text</p> 
</div> <a href="#" class="more">read more</a>  

<p>some text</p> 
<div class="bio> 
<p>some more text</p> 
</div> <a href="#" class="more">read more</a> 

мне нужен первый <p>, чтобы он всегда показывался как опытный. второй <p> и любые последующие <p>, которые будут отображаться только при нажатии на его конкретную <a>, спасибо за быстрый ответ.

...