Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rikaschmitt

Problema com jQuery de abrir/fechar divs

Recommended Posts

Opa!

 

Tenho um jQuery que fiz para abrir e fechar uma div ao clicar na pergunta correspondente. O problema é que somente a primeira div está abrindo\fechando, mesmo eu clicando na 3ª ou 5ª pergunta.

Exemplo: http://jsfiddle.net/1sozc3rL/

jQuery:

var SC = jQuery.noConflict();

SC(document).ready(function() {
SC('.FAQ-conteudo').hide();
SC('.FAQ-fecha').hide();
SC('.FAQ-pergunta').removeClass('FAQ-atual');
SC('.FAQ-pergunta').click(function(){
var i = SC(this).index();
var faqTemClasse = SC('.FAQ-pergunta:eq('+i+')').hasClass('FAQ-atual');
if (faqTemClasse) {
SC('.FAQ-pergunta:eq('+i+')').removeClass('FAQ-atual');
SC('.FAQ-conteudo:eq('+i+')').fadeOut(300);
SC('.FAQ-fecha:eq('+i+')').hide();
SC('.FAQ-abre:eq('+i+')').show();
} else {
SC('.FAQ-conteudo').fadeOut(300);
SC('.FAQ-pergunta:eq('+i+')').addClass('FAQ-atual');
SC('.FAQ-conteudo:eq('+i+')').fadeIn(300);
SC('.FAQ-fecha:eq('+i+')').show();
SC('.FAQ-abre:eq('+i+')').hide();
}
});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema solucionado.

Foi apenas adicionar um "pai" ao código, assim cada ação vai se basear pelo pai.

 

Código corrigido:

var SC = jQuery.noConflict();

SC(document).ready(function() {
SC('.FAQ-conteudo').hide();
SC('.FAQ-fecha').hide();
SC('.FAQ-pergunta').removeClass('FAQ-atual');
SC('.FAQ-pergunta').click(function(){
var $this = SC(this);
var $pai = $this.parent(); // O pai, que engloba tudo que voce usa nesse script será o contexto!
var faqTemClasse = SC('.FAQ-pergunta', $pai).hasClass('FAQ-atual');

if (faqTemClasse) {
SC('.FAQ-pergunta', $pai).removeClass('FAQ-atual');
SC('.FAQ-conteudo', $pai).fadeOut(300);
SC('.FAQ-fecha', $pai).hide();
SC('.FAQ-abre', $pai).show();
} else {
SC('.FAQ-conteudo', $pai).fadeOut(300);
SC('.FAQ-pergunta', $pai).addClass('FAQ-atual');
SC('.FAQ-conteudo', $pai).fadeIn(300);
SC('.FAQ-fecha', $pai).show();
SC('.FAQ-abre', $pai).hide();
}
});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.