entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Deshacer un remove() con jQuery

Si tengo un div y a través un evento lo elimino con:

$("header div#fondo").remove();

¿Puedo luego recuperar ese DIV? Por ejemplo con:

$("header div#fondo").append();

1 Respuesta

3votos

Leonardo-Tadei Puntos227320

Hola @bichomen,

para deshacerlo, tendrías que guardar previamente el contenido del elemento borrado, para volver a agregarlo en el append().

Sería algo como:

var clone = $("header div#fondo").clone(); // guarda el dato
$("header div#fondo").remove();            // Borra
...
$("header div#fondo").append(clone);       // Lo restaura

Si en vez de guardar el elemento en una variable lo guardás en un vector, podrías implementar un deshacer de más de 1 nivel ;-)

También JQuery provee de la función detach(), que implementa internamente esto sin borrarlo, sino "desenganchándolo" del DOM.

Saludos cordiales!

1voto

bichomen comentado

Hola @Leonardo-Tadei,

Muchas gracias, tuve que modificar una cosilla porque en el código que utilizo no acababa de funcionar.

$(document).ready(function() {  

    var clone = $("div#fondo").clone(); 

    $(window).scroll(function() {
        if( $(this).scrollTop() > 0 ){          
            $("div#fondo").remove();            
        } else {
            clone.appendTo("header");       
        }
    });
});

Como puedes ver el código lo que hace, es cambiar la cabecera al desplazar el scroll.

La única pega que veo es que el appendTo no respeta la posición original de elemento en el DOM (tampoco la función detash()), quizás halla que crear un div padre que haga de ancla.

Saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta