2013-06-14 9 views
8

Muszę pobrać zawartość z konkretnej klasy i umieścić ją w div, którego używam do dodania ... moim problemem jest to, że append usuwa element, który dołączam, i potrzebuję go, aby został tam , Oto mój kod:Jquery dołączanie bez usuwania

$(document).ready(function(){ 
    var $content = $('#popupcontent'); 
    var $window = $('#popupwindow'); 
    $('.open').click(function(){ 
     //alert('runnning'); 
     var a = $(this).contents('span'); 
     $content.append(a); 
     $window.fadeIn(300); 
    }); 
    $('.close').click(function(){ 
     //alert('running'); 
      var a = $content.contents('span'); 
     $window.fadeOut(300); 
     $('#popupcontent span').remove(); 
    }); 
}); 

jaki sposób można uzyskać zawartość, po kliknięciu, z każdego .open span do #popupcontents ID bez wyjmowania go z klasy .open?

Aby pokazać, co mam na myśli: JSFIDDLE

UWAGA: Po raz drugi kliknięciu łącza, to przyzwyczajenie dołączać żadnych treści, ponieważ że zawartość została usunięta z tej klasy, co nie jest to, co chcę

UWAGA2: Nie mogę po prostu append zamiast remove w funkcji $('.close').click, ponieważ nie mogę wykryć, które wystąpienie klasy .open pochodzi z treści.

+0

Clone jest opcją – mplungjan

Odpowiedz

22

trzeba sklonować elementu i dołączyć klona:

$('.open').click(function(){ 
    //alert('runnning'); 
    var a = $(this).contents('span'); 
    $content.append(a.clone()); 
    $window.fadeIn(300); 
}); 

Demo

+0

Perfect !!! Dziękuję Ci. –

+0

Dlaczego nie dodać tego jako prawidłowej odpowiedzi? – stefanz

+0

Może dlatego, że musiałem trochę odejść od mojego komputera ... –