jQuery при нажатии выбирает первый класс, а не все классы

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

У меня есть эта функция jQuery :

 $(".clack").hide();
$('.click').click(function(){
    $(".clack").fadeThenSlideToggle();
});
  

Отлично работает, за исключением того, что теперь все clack классы переключены.
Есть идеи, как открыть только первый класс .clack после выбранного класса .click ?

Я пытался, .clack:first но это приводит к открытию только первого экземпляра класса .clack . Я хочу открыть первый класс, .clack найденный после выбранного класса .click .

Я знаю, что могу переписать свой html и функцию jQuery с помощью других решений, но проблема в том, что объем данных, уже существующих для этой функции, очень велик.

Мой HTML :

  <img class="click" style="cursor: pointer;" src="someimg.jpg"/>
 <div class="clack">TEST TEXT1</div>
 <img class="click" style="cursor: pointer;" src="someimg2.jpg"/>
 <div class="clack">TEST TEXT2</div>
 <img class="click" style="cursor: pointer;" src="someimg3.jpg"/>
 <div class="clack">TEST TEXT3</div>
  

ТОЧНЫЙ ПРИМЕР HTML :

  <strong>
   <span>
     <img class="aligncenter click" src="img1.jpg" alt="vesteging" width="436" height="36" />
   </span>
 </strong>
</p>
<div class="clack">
  <center>
    <span style="font-size: 10pt;">DATA TEXT 1</span>
  </center>
</div>
<p>amp;nbsp;</p>
  

Комментарии:

1. В jQuery есть раздел документации по обходу DOM . Вероятно, хорошая идея изучить его.

Ответ №1:

Вы можете настроить таргетинг только на .clack тот, который появляется сразу после нажатия .click

 $('.click').click(function(){
  $(this).next(".clack").fadeThenSlideToggle();
});
  

Комментарии:

1. Спасибо, но я уже пробовал это, потому что в Интернете есть много подобных примеров, но это не работает. Код в порядке, ошибок нет, но при нажатии ничего не происходит.

2. @user3794845 тогда вы не показали нам свой фактический DOM, потому что это должно сработать.

3. Если ваша HTML-структура соответствует опубликованной, то приведенное выше, несомненно, будет нацелено на следующий .clack элемент. Я думаю, что проблема в другом.

4. Это похоже на ваш ответ прямо здесь, пользователь3794845.

5. @user3794845: Вау, ваша HTML-структура совсем не похожа на то, что вы опубликовали в вопросе. Почему это?