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 Puntos209570

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!

bichomen comentado Mar 2

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.

¿Conoces alguien que puede responder?
¡Comparte esta pregunta!


Actividad Reciente

¿Eres Usuario Apple?

...

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

Conecta