У меня есть несколько элементов div, содержимое которых часто должно быть рандомизировано, и в каждом из этих элементов div они возвращаются к своему обычному порядку.
Я использую функцию, аналогичную приведенной ниже, для каждого из этих элементов div, с другим классом длякаждый div, идеально рандомизируя каждый div при загрузке страницы.Функция random работает отлично, но мне нужно знать, как вернуть каждый div в нормальный порядок, нажав кнопку, а затем снова вернуться к любому случайному порядку, и я полагаю, что это можно сделать с помощью метода переключения jQuery.
<script>
$(function () {
var parent = $(".randomONE");
var divs = parent.children();
while (divs.length) {
parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
}
});
</script>
РЕДАКТИРОВАНИЕ:
Андрей Георгиу, это HTML, который я использовал для проверки вашего первого ответа.Он отлично работает для первого DIV, но не для второго.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="randomizeChildrenONE()">RandomizeONE</button>
<button onclick="resetChildrenONE()">ResetONE</button>
<div class="randomONE">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<script type="text/javascript">
let initialOrder = $('.randomONE').html();
function randomizeChildrenONE() {
let parent = $(".randomONE"),
divs = parent.children();
while (divs.length) {
parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
}
}
function resetChildrenONE() {
$(".randomONE").html(initialOrder)
}
</script>
<br><br><br>
<button onclick="randomizeChildrenTWO()">RandomizeTWO</button>
<button onclick="resetChildrenTWO()">ResetTWO</button>
<div class="randomTWO">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
<script type="text/javascript">
let initialOrder = $('.randomTWO').html();
function randomizeChildrenTWO() {
let parent = $(".randomTWO"),
divs = parent.children();
while (divs.length) {
parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
}
}
function resetChildrenTWO() {
$(".randomTWO").html(initialOrder)
}
</script>
Извините, я новичок и не знаю, как сделать это лучше.
Спасибо взаранее!