Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Открытие\закрытие блока при нажатии на ссылку (https://javascript.ru/forum/dom-window/85809-otkrytie%5Czakrytie-bloka-pri-nazhatii-na-ssylku.html)

Рафик 22.03.2024 12:12

Открытие\закрытие блока при нажатии на ссылку
 
Вложений: 2
На страничке есть блок, который при нажатии открывается и раскрывается информация. Как сделать так, чтобы с другой страницы сделать ссылку на эту страницу, на этот блок и чтобы он сразу открывался или выделялся цветом?
Вроде гиперссылку удалось сделать, но выделить цветом или раскрыть сразу блок не удалось.

Код блока, на который нужно сделать гиперссылку и подсветить его, либо просто открыть
<div class="content-case">

<div class="case-content">

<details id="d1560">
<summary onClick="qDetails('d1560')">Тема блока</summary>

<div class="content-decision">

<div class="decision-text">

<div class="text">

<p>
Тест в блоке
</p>

</div>

</div>


</div>

</details>

</div>

</div>



Как выглядит гиперссылка на другой странице на блок выше
<a href="страницасайта.html#d1560"> Текст гиперссылки</a>


Добавлю скрины как выглядят блоки при открытии и закрытии

рони 22.03.2024 14:02

Рафик,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 22.03.2024 14:03

Рафик,
добавить на страницу
<script>
 window.addEventListener('load', () => {
            if(location.hash) qDetails(location.hash);
        })
</script>

Рафик 22.03.2024 14:48

Код не работает
 
Простите, я новичок в этом плане. Куда именно нужно вставить код?
Я вставил на страницу, откуда должен перейти на нужный мне блок, расположенный на другой странице, но как и ранее блок не раскрывается самостоятельно.

рони 22.03.2024 15:32

Цитата:

Сообщение от Рафик
Я вставил на страницу, откуда должен перейти на нужный мне блок,

???
код надо добавить, на ту страницу, где находится ваш блок.

Рафик 22.03.2024 19:05

Что-то идет не так
 
Вложений: 1
Добавлю скрин кода, вставлял перед head, вставлял после, вставлял после body, не подсвечивает / не раскрывает нужный мне блок (

На скрине код добавлен на странице, куда я должен попасть при нажатии гиперссылки из другой страницы <a href="страницасайта.html#d1560"> Текст гиперссылки</a>

voraa 22.03.2024 20:18

Мы не знаем, что делает функция qDetails
<script>
 window.addEventListener('load', () => {
            if(location.hash)
                 document.getElementById(location.hash.slice(1)).open = true;
        })
</script>


Может оно и так сработает, если qDetails открывает details (Хотя не понятно тогда, зачем там onClick="qDetails('d1560')")

<script>
 window.addEventListener('load', () => {
            if(location.hash) qDetails(location.hash.slice(1));
        })
</script>


Но .slice(1) нужно, что бы убрать начальный #

рони 22.03.2024 20:39

voraa,
:thanks:


Часовой пояс GMT +3, время: 18:22.