Поскольку вы пытаетесь изучить Vue, я бы посоветовал вам изучить, как добиться желаемой функциональности с помощью собственного набора инструментов Vues вместо использования собственных обработчиков событий JS, выбора документов и т. Д.
Вы можете легко добавить прослушиватели событий для наиболее распространенных событий с помощью директивы v-on:
(или @
для краткости):
<button class="accordion" @click="myClickHandler">Section 1</button>
Вы можете ссылаться на другие элементы через свойство ref
, которое затем доступно в компоненте Vue в this.$refs
:
<div class="panel" ref="myPanel">...
и в вашем myClickHandler
методе:
methods: {
myClickHandler() {
let panel = this.$refs.myPanel
... do stuff ....
}
}
Это был бы "Vue-способ" решения вашей проблемы - который, как только вы привыкнете к нему, действительно удивителен и прост по сравнению с исходным выбором JS-dom, списком событий и т. Д.
Я бы посоветовал вам больше взглянуть на то, как этого добиться с помощью инструментов Vues, вместо того, чтобы пытаться форсировать нативный JS и отказаться от всей простоты Vues.