i auf einer neuen Webseite und wir arbeite eine Reihe von DIV-Elemente in einem Dokument mit einer bestimmten Klasse Shuffle mischen wollen:javascript Shuffle DIV ist innerhalb DIV
(function($){
$.fn.shuffle = function() {
var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});
this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});
return $(shuffled);
};
})(jQuery);
Meine DIV-Elemente wie folgt aussehen:
<div class="row animate-in shuffle" data-anim-type="fade-in-up">
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-3">
<div class="team-wrapper">
<div class="team-inner" style="background-image: url('assets/img/team/1.jpg')">
<!-- <a href="#" target="_blank" > <i class="fa fa-twitter" ></i></a> -->
</div>
<div class="description">
<h3> Test User 1</h3>
<h5><strong> Tester - Inhaber </strong></h5>
<p>
fon: 1234567890<br>
<a href="mailto:[email protected]">e-mail: [email protected]</a><br>
</p>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-3">
<div class="team-wrapper">
<div class="team-inner" style="background-image: url('assets/img/team/2.jpg')">
<!-- <a href="#" target="_blank" > <i class="fa fa-twitter" ></i></a> -->
</div>
<div class="description">
<h3> Test User 2</h3>
<h5><strong> Tester </strong></h5>
<p>
fon: 0987654321<br>
<a href="mailto:[email protected]">e-mail: [email protected]</a><br>
</p>
</div>
</div>
</div>
</div>
das ist, was ich als wenn die Seite geladen wird:
$('div#shuffle div').shuffle();
die Elemente sind noch in dem sa arraged so wie sie im Dokument geschrieben sind. Wo ist mein Fehler hier?
Vielen Dank im Voraus :)
'$ ('div # Shuffle div') shuffle();' scheint zu Targeting ein Div mit der ID 'shuffle', jedoch ist' shuffle' eine Klasse in Ihrem HTML. Versuchen Sie stattdessen '$ ('div.shuffle div')'? – Toby
Es gibt gewisse Nachteile beim Klonen von Elementen wie das Verlieren von Handlern, so dass Sie diesen Ansatz beim Mischen nicht wirklich verwenden können. Ich werde Ihnen ein Beispiel geben, wie es geht, aber ich werde eine vereinfachte Version verwenden und es liegt an Ihnen, daraus zu lernen und es umzusetzen. Veröffentlicht als Antwort. – Dellirium
und du willst definitiv '.shuffle div' nicht mit diesem Markup mischen, eher wie' .shuffle> div'. * winzige Änderung, großer Unterschied * – Thomas