Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, me ajudem nessa bronca, estou criando uma função para ocutar o rodape de um site. ficara assim, quando clicar ele atera a classe e esconde e quando clicar de novo ele retorna para classe anterior e mostrar novamente o rodape. Quando clico pra mostrar funciona normal mais quando clico para renornar a função nao funciona mais.
segue o código
$(document).ready(function(){
$(".setaOcultar").click(function(){
$("#setaRecolhe").removeClass("setaOcultar");
$(this).addClass("setaMostrar");
$("footer").animate({
marginBottom: "-210px"
});
});
$(".setaMostrar").click(function(){
$("#setaRecolhe").removeClass("setaMostrar");
$(this).addClass("setaOcultar");
$("footer").animate({
marginBottom: "0px"
});
});
});
ficarei grato pela ajuda
abraço
Ótima dica do JCMais ,
Vou simplificar ainda mais rss
$(document).ready(function(){
$("body").on("click", ".setaOcultar", function(){
$("#setaRecolhe").removeClass("setaOcultar");
$(this).addClass("setaMostrar");
$("footer").animate({
marginBottom: "-210px"
}, 40);
});
$("body").on("click", ".setaMostrar", function(){
$("#setaRecolhe").removeClass("setaMostrar");
$(this).addClass("setaOcultar");
$("footer").animate({
marginBottom: "0px"
}, 40);
});
});
Abraço :yes:
Excelente, JCMais e marcello, valeu pela ajuda, funcionou certinho.
abraço
Isso ocorre porque no momento que você adiciona o evento aos elementos com a classe [inline]"setaMostrar"[/inline], não existe, ainda, nenhum elemento com esta classe, portanto, o evento não irá ser ativado. Mesmo que você adicione essa classe mais tarde a um elemento já existente, não irá funcionar.
Para isso, use delegação de eventos, primeiramente, adicione um wrapper para os controles, por exemplo:
Leia: :seta: http://api.jquery.com/on/Exemplo Online :seta: http://jsfiddle.net/JCMais/5q2n3/