JS FIDDLE OF MY ACCORDION
Я пытаюсь сосредоточиться на заголовке или первом div, который находится внутри аккордеона, но он не работает.
В js скрипке по умолчанию html активен и состоит из 11 вопросов. И теперь PHP по умолчанию рушится, и когда мы нажмем на него, он откроется, и HTML рухнет.
Моя проблема в том, когда я нажимаю на PHP
он показывает последний вопрос в моем случае, он показывает 11-й вопрос PHP , на самом деле он должен показать первое quuestion PHP, как я могу его достичь ..?
Пожалуйста, см. Скрипт js, который я поделил.
я пробовал 3 разных способа, но никто не работает:
$("#panelForPHP").click(function(){ $("#accordionPHP").focus(); }); $("#panelForPHP").click(function(){ $("#collapsePHP1").focus(); }); $("#panelForPHP").click(function(){ $("#panelForPHP").focus(); });
Прокрутка вверх до верхней части панели
$('#accordionMain').on('shown.bs.collapse', function() { var panel = $(this).find('.in'); $('html, body').animate({ scrollTop: panel.offset().top }); });
Чтобы прокрутить список до заголовка панели,
$('#accordionMain').on('shown.bs.collapse', function() { var panel = $(this).find('.in'); $('html, body').animate({ scrollTop: panel.offset().top -55 }); });
Иерархическая структура аккордеонов делает проблему мало сложной в вашем случае. Когда вы открываете «вопрос 11» из «PHP», он прокручивается к первому элементу с классом «.in». Класс «.in» вставляется с помощью сценариев начальной загрузки в активное тело панели. Когда щелкнут «вопрос 11», есть два активных тела панели, сначала содержащие 11 вопросов под PHP и второй содержащий ответ на вопрос 11.
В этом случае вам нужно убрать последнее тело панели с классом «.in».
var panel = $(this).find('.in').last();
Если вы закроете PHP (родительский аккордеон), оставив вопросы (дочерний аккордеон) открытыми и снова откройте родительский аккордеон, он прокрутит до последнего открытого дочернего аккордеона, так как это последний элемент с классом «.in».