Как открыть аккордеон по внешней ссылке?Javascript

Форум по Javascript
Ответить
Anonymous
 Как открыть аккордеон по внешней ссылке?

Сообщение Anonymous »

Я пытаюсь связать одну страницу моего веб-сайта с содержимым аккордеона на другой странице, но не могу заставить JavaScript работать для автоматического открытия этого аккордеона. Я просмотрел здесь много других вопросов по этой проблеме и попробовал несколько вещей, но похоже, что большинство из них относятся к людям, использующим jQuery или начальную загрузку, а я не таков.Самое непонятное заключается в том, что я ДЕЙСТВИТЕЛЬНО заставил его работать вчера со сценарием ниже, но когда я попытался использовать тот же сценарий для других привязок, он полностью сломался. Даже после того, как я удалил дополнительные якоря, оригинал больше не работает. Я новичок в JavaScript, поэтому ответ может быть очевидным: я думал, что это может быть связано с вызовом или вызовом функции в скрипте? Но это всего лишь предположение.
Заранее благодарим всех, кто может помочь!
Вот HTML-код ссылки:

Код: Выделить всё

[url=/projects#stripmall]
Strip Mall Magazine, [i]Issue 02: Fall 2024.[/i][/b]
[/url]
и JavaScript, привязка к меню аккордеона и CSS для аккордеона в целом, а также функция открытия правильного раздела:

Код: Выделить всё

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function() {
this.classList.toggle("active");

var panel = this.nextElementSibling;
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}

});

//Function to open accordion from link
document.addEventListener("load", function() {
function openAccordionByHash() {
var hash = window.location.hash;
if (hash) {
var target = document.querySelector(hash); //  matching the hash
if (target && target.classList.contains("panel")) {
this.classList.toggle("active");
}
}
}
});

}

Код: Выделить всё

.accordion {
background-color: transparent;
color: black;
padding: 5px;
width: 100%;
border: none;
text-align: center;
outline: none;
font-size: 16pt;
font-family: "space grotesk";
display: block;
transition: 0.4s;
cursor: pointer;
}

.active,
.accordion:hover {
color: inherit;
}

.panel {
display: none;
background-color: white;
overflow: hidden;
padding-left: 15px;
padding-top: 10px;
;
}

Код: Выделить всё

Strip Mall Magazine

panel content goes here



Подробнее здесь: https://stackoverflow.com/questions/798 ... ernal-link
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»