1

Ich versuche, ein jQuery-Objekt, seine Kinder und keine Referenzen zu klonen. Mein Verständnis ist, dass clone() dies erreichen sollte, aber in IE11, das zweite Mal, dass ich versuche, eines der untergeordneten Objekte an das leere umgebende div anzuhängen, existiert dieses untergeordnete Objekt nicht mehr. Sie können dies sehen, indem Sie in meinem Schnipsel zweimal auf "klick mich" klicken und IE11 verwenden.Wie klon ein jQuery-Objekt und seine Kinder, ohne Referenzen in IE11

Ich denke, mein Problem könnte sein, dass die Child-Referenzen geklont wurden, also überschrieb die leere div sie, aber möglicherweise falsch darüber. Bisher hat clone() am besten für das Klonen des Elternelements funktioniert. Ich bevorzuge lieber jQuery als getElementsByClassName. Ich hatte kein Glück mit $.extend(true, {}, $('.allItems'));

Ich würde jede Hilfe mit diesem schätzen!

window.$allItems = $('.carousel_item').clone(); 
 

 
$('.link').on('click', function(evt) { 
 
    evt.preventDefault(); 
 
    
 
    $('.blue').html('').append('<div id="bills"></div>'); 
 
    $('#bills').append($allItems[0]); 
 
});
.blue { 
 
    background-color: #d0e4f2; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a href="#" class="link">clickme</a> 
 
<div class="blue"> 
 
    <div id="bills"> 
 
    <div class='carousel_item'> 
 
     <img src='http://fillmurray.com/150/200'> 
 
     <div> 
 
     <span>Tomatoes</span> 
 
     </div> 
 
    </div> 
 
    <div class='carousel_item'> 
 
     <img src='http://fillmurray.com/200/200'> 
 
     <div> 
 
     <span>Film</span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

was der Punkt des Codes ist, wie, was wollen Sie erreichen? Versuchen Sie Karussell-Items zu duplizieren? – chiliNUT

+0

@chiliNUT Dieser Code ist eine vereinfachte Version. Im Original gibt es viele weitere divs mit Bildern und Daten. Wenn Sie auf einen bestimmten Link klicken, wird eine gefilterte Auswahl dieser divs angezeigt. –

+0

Wenn Sie das gleiche Snippet in Chrome ausführen, sehen Sie das gewünschte Verhalten: Der erste Klick filtert nur das '[0]' th-Objekt und alle nachfolgenden Klicks zeigen das Element wieder an. –

Antwort

0

diese gelöst.

Um das Karussellelement nach Anhängen eines leeren Divs mehr als einmal anzuhängen, musste ich die DOM-Elemente jedes Mal klonen, wenn die Funktion aufgerufen wurde. Ich brauchte eine Zeile auf den Klick-Listener hinzuzufügen:

$allItems = $allItems.clone();

Verwandte Themen