• 0
Sign in to follow this  
Edinho Rodrigues

slideToggle Dinâmico

Question

Cara, to tentando fazer um esquema desses, só que dinâmico, com dados vindo do banco. Eu estou usando o foreach pra percorrer uma lista e exibir os dados. Basicamente eu tenho uma lista de categorias e uma lista de convênios. Eu percorro a lista de categorias e exibo os convênios de acordo com a categoria. Até aí, tudo lindo, o problema é quando eu tento fazer o slideToggle dinamicamente, ele mostra apenas o primeiro item da lista de convênios. Será que tem alguma ideia? Segue abaixo meu código:
JAVASCRIPT
<script type="text/javascript">
$(document).ready(function() {
$(".lista_definicao dt a").toggle(function() {
$(this).parent().next("dd").slideDown(800);
$(this).addClass("ativo");
},
function() {
$(this).parent().next("dd").slideUp(800);
$(this).removeClass("ativo");
});
});
</script>

PHP
<?php
if (!empty($lista_categoria)) {
foreach ($lista_categoria as $lc) {//Percorrendo a lista de categorias
echo "<dt><a href=\"#\">" . $lc->getDescricao() . "</a></dt>";//Mostrando o nome da categoria
$lista_convenios = $conv_dao->listarConvenioPorCategoria($lc->getCodigo());//Preenchendo a lista de convênios com o código da categoria
if (!empty($lista_convenios)) {
foreach ($lista_convenios as $lv) {//percorrendo a lista de convênios
echo "<dd>
<p>" . $lv->getNome() . " </p>
<p>" . $lv->getDescricao() . "</p>
</dd>";//Exibindo os dados dos convênios
}
}
}
}
?>

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

A sua função JavaScript está dizendo que quando um link dentro de ".lista_definicao" for clicada ele vai procurar o dt que "envolve" a tag "a" e seleciona apenas a próxima tag dd e a faz aparecer ou desaparecer, porém cada tag dd tem apenas UM convênio.

Das duas uma, ou você coloca todos os convênios da mesma categoria dentro do mesmo "dd" ou envolta dos "dd" que compreendem uma categoria você coloca outra tag e o seu JavaScript irá selecionar esta nova tag para fazer o slideToggle.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this