So, the code is working as expected?

As for how it works, I'm using a basic loop to run through the
numbers: http://www.w3schools.com/JS/js_loop_for.asp

Then, I'm just concatenating a string inside the $() function.  Once
the string is concatenated, it will be passed to the $() function just
as if you typed it out explicitly.

The process:
Let's say numStickies equals 1 in this iteration.

$("#.sticky" + numStickies + ":hidden")
$("#.sticky1:hidden")
- the function is called and the elements are matched.
- etc...

Does that make sense?


On Jan 15, 11:09 am, DJCarbon43 <djcarbo...@gmail.com> wrote:
> I'm not sure what it is that its choking on. It doesnt throw any
> errors in Firebug or Inspector
>
> If I do
>
> $(function() {
>     var i, numStickies = 9;
>     for (i = 1; i <= numStickies; i += 1) {
>         setTimeout( function() {
>             $(".sticky1:hidden").fadeIn(500);
>         }, 100 * i);
>     }
>
> });
>
> It works fine (obviously) as its not pulling in the variable attribute
> (" + i + ")
>
> Basically everything in
>
> setTimeout( function() {
>             $(".sticky1:hidden").fadeIn(500);
>         }, 100 * i);
>
> I get, its
>
> var i, numStickies = 9;
>     for (i = 1; i <= numStickies; i += 1)
>
> That I don't yet understand. I see that its basically saying "there
> are 9 sticky classes. For each class, add a digit to the variable i
> for the classname , and multiply the timeout by i.
>
> Its ingenious, but I haven't the first idea what is broken.
>
> Basically, I have a page that I created which pulls data out of a job
> tracking database (doing this for free, in my spare time, to learn
> more about database calls, php, and js) and paints the data set that
> was queried down the page in sticky notes. It randomizes the color of
> the notes, and onload fades them in. There may be 50 stickies, or as
> few as one or two. Its pretty neat, and its working right now, but I'd
> love to better understand your method.
>
> Thanks again!
> D
>
> On Jan 15, 12:21 am, James Van Dyke <jame...@gmail.com> wrote:
>
> > Let me know what's not working, and maybe I can help you out.  I don't
> > have firebug handy, so I didn't test it.
>
> > On Jan 14, 11:44 pm,DJCarbon43<djcarbo...@gmail.com> wrote:
>
> > > I haven't gotten it working yet, but I understand the concept, and its
> > > brilliant!
>
> > > Thank you very much!
>
> > > On Jan 14, 11:28 pm, James Van Dyke <jame...@gmail.com> wrote:
>
> > > > $(function() {
> > > >     var i, numStickies = 9;
> > > >     for (i = 1; i <= numStickies; i += 1) {
> > > >         setTimeout( function() {
> > > >             $(".sticky" + i + ":hidden").fadeIn(500);
> > > >         }, 100 * i);
> > > >     }
>
> > > > });
>
> > > > Not sure if that's faster, but it's shorter and easier to change.
>
> > > > On Jan 14, 11:19 pm,DJCarbon43<djcarbo...@gmail.com> wrote:
>
> > > > > Being a bit of a newfie, I was wondering how this function could be
> > > > > condensed:
>
> > > > > $(document).ready =
> > > > >         setTimeout(function(){ $(".sticky1:hidden").fadeIn(500); }, 
> > > > > 100);
> > > > >         setTimeout(function(){ $(".sticky2:hidden").fadeIn(500); }, 
> > > > > 200);
> > > > >         setTimeout(function(){ $(".sticky3:hidden").fadeIn(500); }, 
> > > > > 300);
> > > > >         setTimeout(function(){ $(".sticky4:hidden").fadeIn(500); }, 
> > > > > 400);
> > > > >         setTimeout(function(){ $(".sticky5:hidden").fadeIn(500); }, 
> > > > > 500);
> > > > >         setTimeout(function(){ $(".sticky6:hidden").fadeIn(500); }, 
> > > > > 600);
> > > > >         setTimeout(function(){ $(".sticky7:hidden").fadeIn(500); }, 
> > > > > 700);
> > > > >         setTimeout(function(){ $(".sticky8:hidden").fadeIn(500); }, 
> > > > > 800);
> > > > >         setTimeout(function(){ $(".sticky9:hidden").fadeIn(500); }, 
> > > > > 900);
>
> > > > > Is it possible, or is that as clean as can be? fadein time is the same
> > > > > accross all sticky classes, but the timeout must be different for 
> > > > > each.

Reply via email to