Oops. Didn't run the code long enough to see that, my mistake. When this[i] is undefined the jQ object returns with document. Using eq() instead can fix it.
jQuery.fn.showLoop = function(){ var i = i || 0, self = this; this.eq(i).show(600, function(){ self.showLoop(++i); }); }; but the solution Karl posted should also work and is more concise: var $type = $('.type'), i = 0; (function(){ $type.eq(i++).show('normal', arguments.callee); })(); cheers, - ricardo On Mar 17, 12:30 am, Tom Shafer <tom.sha...@gmail.com> wrote: > doesnt seem to work get a recursion error > > thanks! > On Mar 16, 7:26 pm, ricardobeat <ricardob...@gmail.com> wrote: > > > jQuery.fn.showLoop = function(i){ > > var i = i || 0, > > self = this; > > $( this[i] ).show(600, function(){ > > self.showLoop(++i); > > }); > > > }; > > > $('.type').showLoop(); > > > On Mar 16, 7:27 pm, Tom Shafer <tom.sha...@gmail.com> wrote: > > > > how can i loop through each div on a page and have them appear one by > > > one > > > i am trying > > > > var arrayList2 = $.makeArray(document.getElementsByClassName > > > (".type")); > > > > > > > $.each(arrayList2,function() { > > > $(this).show(); > > > }); > > > > thanks > > > > -tj