Estou exibindo os resultados em uma tabela HTML para respostas certas e erradas.
Cada pergunta tem um "Explain Link" como a última coluna da tabela. Se clicado, quero um novo DIV ou SPAN aberto adjacente a ele no lado direito (expanda conforme necessário). Ele mostrará a explicação detalhada para aquela pergunta em particular. Ele incluirá texto que pode ser formatado em HTML com tags h2, h3, p e também pode incluir imagens (tipo "<img src"). Clicar novamente na mesma pergunta ou em uma pergunta diferente "Explain Link" deve fechar aquele DIV ou SPAN aberto.
Foi isso que eu tentei:
Javascript:
<script>
$(function () {
$('#button-1').click(function(){
$('#popup-1').animate({height:'500px'}, 500);
});
});
</script>
HTML:
<tr><td>Q.2<td>C<td>C<td>✅<td><a href='#' id="button-1">Explain</a><span id='popup-1'>Explanation of answer<br>Goes<br>here<br>including images: <img src='img-explain-q2.jpg'></img></span>
CSS:
#popup-1{
height: 0px;
width: 100%;
float: right;
overflow: hidden;
background: #efefef;
}
Alguma informação sobre o que está errado e como corrigi-lo?
se você quiser fazer isso sem JS, é mais fácil usar
<details>
a solução HTML mais simples e semântica: usar o<details>
elemento .como abaixo você também pode estilizar isto:
adicione / faça alterações no arquivo css conforme mencionado abaixo
adicione a função javascript abaixo ao seu arquivo de scripts
envolva o
<a>
and<span>
em uma div, faça as seguintes alterações na<a>
tag e adicione também a classeexplain
ao spanao fazer as mudanças acima você alcançará o que deseja,
então, basicamente, a ideia por trás disso é que você terá um div pai chamado DETS que conterá a
<a>
tag e a<span>
exibição deste div é definida comoflex
, leia mais sobre os tipos de exibição , ele é definido como flexível, pois você deseja exibi-lo no lado direito do botão de explicaçãoadicionado
href="javascript:void(0)" onclick="show(this)"
à<a>
tag , o que basicamente significa que evita o comportamento padrão de recarregar ou abrir uma nova aba, e onclick chama uma função javascript,na função javascript, primeiro salvamos o estado atual do div/span de explicação, depois ocultamos e definimos a altura de todos os divs de explicação como zero, o que significa que cada explicação é ocultada, então verificamos o estado anterior do span de explicação atual, se já estava oculto ou não mostrado, então o exibimos, com uma animação de 500 ms de 0 a 500 px de altura
isso é usado para fixar a altura em 500px após um atraso
confira abaixo
para exibir a explicação abaixo do botão explicar
mudar
para
Espero que isso tenha ajudado você, se tiver alguma dúvida relacionada à resposta, fique à vontade para perguntar