Нажмите F12 на скрипке и проверьте, откуда возникла ошибка:
(index):61 Uncaught SyntaxError: Unexpected token export
Давайте проверим, что находится в строке 61 индекса:
export default Accordion;
Теперь, почему это будетвопрос?Ну, потому что нативные модули javascript должны быть размещены внутри тегов скрипта, которые помечены как type="module"
.Вы используете requireJs, который, кажется, импортирует ваш файл javascript, просто поместив код из вашего файла в «window.onload», что приводит к следующему коду:
<script type="text/javascript">//<![CDATA[
window.onload=function(){
const Accordion = {
items: [],
listeners: [],
init() {
const accordions = document.getElementsByClassName('accordion');
Array.from(accordions).forEach((accordion) => {
const items = accordion.getElementsByClassName('accordion-item');
Array.from(items).forEach((item) => {
const title = item.getElementsByClassName('accordion-title');
title[0].addEventListener('click', () => {
item.classList.toggle('open');
});
this.listeners.push(title[0]);
this.items.push(item);
});
});
},
destroy() {
this.listeners.forEach((listener) => {
listener.removeEventListener('click', () => {});
});
},
};
export default Accordion;
}
//]]></script>
Итак, есть export
внутри функции ... это недопустимый синтаксис.Удалите его, и код будет работать нормально.
Если вы хотите использовать собственные модули javascript, используйте синтаксис import
для импорта вашего модуля. Подробнее .