Estou enfrentando um problema com o código abaixo, pois se eu clicar em um acordeão, ele abrirá, mas o símbolo do ícone "+" não se transformará em "-" quando for aberto. O trecho de código abaixo não está sendo ativado.
relate perguntas
-
classificação de mesclagem não está funcionando - código Javascript: não é possível encontrar o erro mesmo após a depuração
-
método select.remove() funciona estranho [fechado]
-
Sempre um 401 res em useOpenWeather () - react-open-weather lib [duplicado]
-
O elemento de entrada não possui atributo somente leitura, mas os campos ainda não podem ser editados [fechado]
-
Como editar o raio do primeiro nó de um RadialTree D3.js?
Você simplesmente esqueceu de alternar a
active
classe no script js e fazer um loop pelos outros acordeões para removê-los primeiro. Com base na sua lógica, você está adicionando uma classe ativa ao acordeão para poder alterá-la com o css sempre que abrir um dos acordeões.A lógica é que você pega todos os acordeões e todos os painéis, faz um loop por todos eles
accordions
para adicionar o ouvinte de eventos de clique: você adiciona a+ or -
vitrine adicionando aactive
classe somente ao destino e a remove dos outros itens não alvo, e então você faz a lógica que você já fez, que é adicionar a classe aberta somente ao destino e alterná-la dos outros itens.também o estado ativo do seu css do acordeão precisa de uma pequena correção apenas para ajustar a orientação do
+ or -
Assim como na minha resposta sobre abertura/fechamento, você pode usar o
<details>
elemento . O elemento de resumo é um elemento de lista e pode ser estilizado como um elemento de lista. Portanto, quando o elemento de detalhes estiver aberto, estilize o elemento de resumo de acordo.