Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Удалить элементы в произвольном порядке. (https://javascript.ru/forum/jquery/17395-udalit-ehlementy-v-proizvolnom-poryadke.html)

ArmagedDance 17.05.2011 20:51

Удалить элементы в произвольном порядке.
 
Задача довольно простая, есть несколько блоков класса part, их просто нужно удалить в произвольном порядке (через промежутки времени). Как это сделать?
Набросал что-то такое, но пока блоки удаляются одновременно.


(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);
$('div .part').shuffle();
var divsize=$('.part').size();
var clear=setInterval(function() {
	if(divsize==0){clearInterval(clear);}
	$('.part').next().hide(500);
}, 500);

Aetae 17.05.2011 21:13

var part=document.getElementsByClassName('part');
(function(){
var e=part[Math.floor(Math.round()*e.length)];
e.parentNode.removeChild(e);
if(part.length)setTimeout(arguments.callee,500)
})()

ArmagedDance 17.05.2011 21:22

Консоль ошибок в Firefox пишет e is undefined. Строка 4.

Sweet 17.05.2011 23:04

Очевидно, что это опечатка. поменяй e.length на part.length.


Часовой пояс GMT +3, время: 21:56.