This:

    $( function() { /* stuff */  } );

is a "shortcut" for writing this:

  $(document).ready( function() { /* stuff */ } );

Both run the function when the DOM is ready. It allows you to leave
the script elements in the <head> an still have them run when the page
is ready. It's slightly different from the "onload" event in that it
doesn't have to wait for images, etc to load before running.

See the following page for more details:

  http://docs.jquery.com/How_jQuery_Works#Launching_Code_on_Document_Ready

Karl Rudd

On 2/14/07, Nathan Young -X (natyoung - Artizen at Cisco)
<[EMAIL PROTECTED]> wrote:
> Karl!
>
> That did work!
>
> It worked also without the function wrapper:
>
> $("div.accordion h3").each( function() {
>         $(this).nextAll().wrapAll("<div class='accordionInner'></div>");
> });
>
> Can you explain wrapping it in:
>
> $(function() {
>         //...
> });
>
> Thanks again!!
>
> ---->N
>
>
> .:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:
> ||:.
>
> Nathan Young
> Cisco.com->Interface Development
> A: ncy1717
> E: [EMAIL PROTECTED]
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Karl Rudd
> > Sent: Tuesday, February 13, 2007 4:21 PM
> > To: jQuery Discussion.
> > Subject: Re: [jQuery] wrapping or cloning problem
> >
> > Try this:
> >
> > $(function() {
> >       $("div.accordion h3").each( function() {
> >               $(this).nextAll().wrapAll("<div
> > class='accordionInner'></div>");
> >       });
> > });
> >
> > The problem was that "wrapAll" was wrapping up all the elements of all
> > the accordion DIVs into one.
> >
> > Sidenote: The sample webpage was a bit messed up, it didn't have a
> > head or body, the script tags where inside the body, and the jquery.js
> > file wasn't actually present (404 error). I assume it's just some copy
> > paste errors.
> >
> > Karl Rudd
> >
> > On 2/14/07, Nathan Young -X (natyoung - Artizen at Cisco)
> > <[EMAIL PROTECTED]> wrote:
> > > I posted my sample HTML here:
> > >
> > > http://ncyoung.com/temp/simplify.html
> > >
> > >
> > >
> > >
> > .:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:.
> > _.:||:._.:
> > > ||:.
> > >
> > > Nathan Young
> > > Cisco.com->Interface Development
> > > A: ncy1717
> > > E: [EMAIL PROTECTED]
> > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED] On Behalf Of Nathan Young
> > > > -X (natyoung - Artizen at Cisco)
> > > > Sent: Tuesday, February 13, 2007 10:55 AM
> > > > To: jQuery Discussion.
> > > > Subject: Re: [jQuery] wrapping or cloning problem
> > > >
> > > > Hi John.
> > > >
> > > > Thanks for taking a stab at this!  Your solution does fit
> > my problem
> > > > statement, and I agree it's a clever approach.
> > > >
> > > > I grabbed the function you sent and I got wrapall from the
> > > > URL you sent.
> > > >
> > > > I'm not getting good behavior overall from it and I'm new
> > enough to
> > > > jQuery that I can't tell where the problem lies...
> > probably between my
> > > > eyes and keyboard :)
> > > >
> > > > I'm attaching an HTML file with my attempt (and some commented out
> > > > cruft), and I hope it makes it through the mailer.  If it
> > > > doesn't let me
> > > > know and I'll find somewhere to post it.
> > > >
> > > > Also I can't help thinking that preparing the right
> > "each" callback
> > > > function could let me do this with core jQuery and avoid writing
> > > > extension functions.
> > > >
> > > > I'm encountering something a little strange with each
> > > > functions though.
> > > > This works fine:
> > > >
> > > > $("[EMAIL PROTECTED]").each(function(i){$(this).prepend("h
> > > > ey!");)});
> > > >
> > > > I get a "hey" inside and at the start of each accordion div.
> > > >
> > > > When I add this line:
> > > >
> > > > $("[EMAIL PROTECTED]").each(function(i){$(this).prepend("h
> > > > ey!");$(th
> > > > is).prepend($(this).children("div/h3").clone())});
> > > >
> > > > Not only does the second thing not work (and I've racked my brains
> > > > trying a variety of constructions there), but I stop getting
> > > > consistent
> > > > "hey"'s in the right places.
> > > >
> > > > ---------->Nathan
> > > >
> > > >
> > > > .:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:.
> > > > _.:||:._.:
> > > > ||:.
> > > >
> > > > Nathan Young
> > > > Cisco.com->Interface Development
> > > > A: ncy1717
> > > > E: [EMAIL PROTECTED]
> > > >
> > > > > -----Original Message-----
> > > > > From: [EMAIL PROTECTED]
> > > > > [mailto:[EMAIL PROTECTED] On Behalf Of John Resig
> > > > > Sent: Monday, February 12, 2007 11:32 PM
> > > > > To: jQuery Discussion.
> > > > > Subject: Re: [jQuery] wrapping or cloning problem
> > > > >
> > > > > Hi Nathan -
> > > > >
> > > > > I'll take a stab at it!
> > > > >
> > > > > A while back I wrote a nifty little pair of plugins:
> > > > > http://john.jquery.com/jquery/test/nextuntil.html
> > > > >
> > > > > .nextUntil() and .wrapAll(). wrapAll is perfect for you,
> > > > > unfortunately, nextUntil won't do the trick - you need
> > a .nextAll()
> > > > >
> > > > > So here's a .nextAll:
> > > > >
> > > > > $.fn.nextAll = function() {
> > > > >     var match = [];
> > > > >
> > > > >     // We need to figure out which elements to push
> > onto the array
> > > > >     this.each(function(){
> > > > >         // Traverse through the sibling nodes
> > > > >         for( var i = this.nextSibling; i; i = i.nextSibling ) {
> > > > >             // Make sure that we're only dealing with elements
> > > > >             if ( i.nodeType != 1 ) continue;
> > > > >
> > > > >             // Otherwise, add it on to the stack
> > > > >             match.push( i );
> > > > >         }
> > > > >     });
> > > > >
> > > > >     return this.pushStack( match );
> > > > > };
> > > > >
> > > > > And now we can do this:
> > > > > $("div.accoridan h3").nextAll().wrapAll("<div
> > > > > class='accordianInner'></div>");
> > > > >
> > > > > I think that's a pretty nifty solution :-) Let me know if
> > > > you want me
> > > > > to setup a demo.
> > > > >
> > > > > --John
> > > > >
> > > > > On 2/12/07, Nathan Young -X (natyoung - Artizen at Cisco)
> > > > > <[EMAIL PROTECTED]> wrote:
> > > > > > Hi All.
> > > > > >
> > > > > > I want to accordion an existing content format, and I think
> > > > > that I need
> > > > > > to insert a wrapper element.  First I would love a sanity
> > > > > check on my
> > > > > > general approach then maybe someone can critique the
> > > > > manipulation I'm
> > > > > > trying.
> > > > > >
> > > > > > Here's my content:
> > > > > >
> > > > > > <div class="accordion">
> > > > > >    <h3>heading</h3>
> > > > > >    <arbitrary content/>
> > > > > > </div>
> > > > > >
> > > > > > I can't change the content and I need the heading to be
> > > > used as the
> > > > > > clickable bar.
> > > > > >
> > > > > > The approach I want to take (on a high level) is:
> > > > > >  - put a div around everything after the h3 in the
> > dives classed
> > > > > > "accordion"
> > > > > >  - put events on the h3 to show the associated div
> > and hide the
> > > > > > non-associated divs
> > > > > >
> > > > > > The js I would use is something like:
> > > > > >
> > > > > >
> > > > > $("[EMAIL PROTECTED]").removeClass("accordion").addClass("
> > > > > accordionI
> > > > > > nner");
> > > > > > $("[EMAIL PROTECTED]").wrap('<div
> > > > > class="accordion"></div>');
> > > > > >
> > > > > > //no luck here:
> > > > > >
> > > > > $("div:[EMAIL PROTECTED]").each(function(i){$(this).prepend($
> > > > > (this).chi
> > > > > > ldren("[EMAIL PROTECTED]:firstChild)})
> > > > > >
> > > > > > //nor with this:
> > > > > >
> > > > > $("[EMAIL PROTECTED]").each(function(i){$(this).children("
> > > > > [EMAIL PROTECTED]
> > > > > > =accordionInner]:first-child").clone().prependTo(this)})
> > > > > >
> > > > > >
> > > > > > All suggestions welcome!
> > > > > >
> > > > > > ----------->Nathan
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > .:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:._.:||:.
> > > > > _.:||:._.:
> > > > > > ||:.
> > > > > >
> > > > > > Nathan Young
> > > > > > Cisco.com->Interface Development
> > > > > > A: ncy1717
> > > > > > E: [EMAIL PROTECTED]
> > > > > >
> > > > > > _______________________________________________
> > > > > > jQuery mailing list
> > > > > > discuss@jquery.com
> > > > > > http://jquery.com/discuss/
> > > > > >
> > > > >
> > > > > _______________________________________________
> > > > > jQuery mailing list
> > > > > discuss@jquery.com
> > > > > http://jquery.com/discuss/
> > > > >
> > > >
> > > > _______________________________________________
> > > > jQuery mailing list
> > > > discuss@jquery.com
> > > > http://jquery.com/discuss/
> > > >
> > >
> > > _______________________________________________
> > > jQuery mailing list
> > > discuss@jquery.com
> > > http://jquery.com/discuss/
> > >
> >
> > _______________________________________________
> > jQuery mailing list
> > discuss@jquery.com
> > http://jquery.com/discuss/
> >
>
> _______________________________________________
> jQuery mailing list
> discuss@jquery.com
> http://jquery.com/discuss/
>

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to