Как выбрать любой элемент из списка DL

#jquery #list #codeigniter

#jquery #Список #codeigniter

Вопрос:

У меня есть список DL с заголовком в DT и информацией в DD. Я собираюсь использовать jquery для выбора заголовка из DT и открытия DD при нажатии на него.Мой вопрос в том, как я могу выбрать «просто» DT, который я нажимаю, и открыть этот dd? Прямо сейчас, когда я нажимаю на DT, все dd открываются и закрываются с помощью переключателя

Из представления:

 foreach($allnews as $row){
echo "<dt class="row">$row->date - $row->subject </dt>";
echo "<dd class="show">$row->news</dd>";
}
  

Jquery

 $(function(){
   $('.show').hide();
   $('.row').click(function(){
       $('.show').toggle("slow");      
   });   
});
  

Спасибо за ваше время

Ответ №1:

 $('.row').click(function(ev){
    $(this).next(".show").toggle("slow");      
});
  

.next , ev.target

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

1. или $(this) вместо $ (ev.target)

2. @RobCowie у вас есть веская причина предпочесть $(this) to $(ev.target) , и это демонстративно не предупреждает о понижении.

3. Это работает в обоих направлениях, друзья, здесь не должно быть отрицательных голосов. Большое спасибо всем вам

4. @Raynos. Прежде всего, соглашение; Также this является элементом, к которому прикреплен обработчик. event.target это элемент, который получил событие click. Это может быть дочерний элемент. В этом примере различие, вероятно, неважное, но это зависит от содержимого <dt> .

5. Что ж, ваш ответ был принят @Raynos, поэтому OP должен думать, что он соответствует всем требованиям. Я уберу свой отрицательный отзыв, хотя различие между this и event.target должно быть учтено всеми, кто читает этот пост. Смотрите jsfiddle.net/rob_cowie/rS3mj