Раскрытие по клику

16.07.2022

Задача, когда надо открыть блок по клику на кнопку или ссылку “читать дальше” просто решается с помощью jQuery. Но как быть, если таких кнопок несколько и каждой из них соответствует свой блок? Ведь нужно, чтобы по клику открылся именно тот блок, который нужен, а не все остальные.

Итак, у нас есть такая разметка страницы:

<div class="readmore" id="block1">Читать дальше</div>
<div class="moretext" id="block1-text">Это первый блок скрытого текста</div>

<div class="readmore" id="block2">Читать дальше</div>
<div class="moretext" id="block2-text">Это второй блок скрытого текста</div>

<div class="readmore" id="block3">Читать дальше</div>
<div class="moretext" id="block3-text">Это третий блок скрытого текста</div>

У нас есть три блока скрытого текста и три кнопки. У каждой кнопки есть класс readmore, а у блока – класс moretext. Также и у блоков и у кнопок есть свои уникальные идентификаторы. И идентификатор блока отличается от идентификатора кнопки добавлением суффикса -text. Конечно, можно придумать любое другое сочетание символов, главное, чтобы оно было одинаковым для всех блоков.

Теперь очень просто написать скрипт:

$(document).ready(function(){
    $('.readmore').click(function(){
        var clickId = $(this).attr('id');
        var clickId1 = '#' + clickId;
        var textId = '#' + clickId + '-text';
        $(textId).slideToggle(100);
        $(clickId1).slideToggle(100);        
    });
});

Здесь мы получаем идентификатор кнопки, добавляем к нему суффикс -text и определяем идентификатор блока. Затем скрываем кнопку и раскрываем блок. Все!

Пример можно посмотреть здесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *