Chefranov
@Chefranov
Front-End, Back-End

Как раскрывать блок по ссылке с хешем на другой странице?

На одной странице имеется у меня аккордеон
$(document).ready(function () {
$('#accordeon .acc-head').on('click', f_acc);
 });
function f_acc() {
     $('#accordeon .acc-body').not($(this).next()).slideUp(500);
     $('#accordeon .acc-head').not(this).removeClass('active');
     $(this).next().slideToggle(500);
     $(this).toggleClass('active');
 }

Как можно с другой страницы перейдя по ссылке с хешем вида mysite.com/mypage#block1 на страницу с аккордеоном раскрыть соответствующий блок в аккордеоне?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Merzley
Можно сделать так:

Каждому элементу .acc-head добавить data-атрибут с необходимым хешем. Например, data-hash="#block1"

В скрипт добавить код, который будет читать текущий хеш, пришедший в URL, а затем "кликать" по нужному элементу.
//Ищем элемент
var selector = '[data-hash="'+window.location.hash+'"]';
var jqElement = $(selector);
//Проверяем, нашли то что нужно, или нет
if (jqElement.length === 1){
    //Если нашли - кликаем
    jqElement.click();
}

Само собой, этот код нужно вызывать после привязывания событий на клик.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы