jQuery Birthday: 1.1, New Site, New Docs

Posted on by

Great news, everyone! Today is jQuery’s 1 Year “Birthday”! (I released it 1 year ago, today, at BarCamp New York City) In celebration, we’ve got a bunch of stuff for you to enjoy.

1) jQuery 1.1

This is a great release – tons of bug fixes, huge speed improvements, and a big simplification of the outstanding API. It is highly recommend that you upgrade to get all the benefits of this release.

Download Now:

Upgrade Guide:

Please read through these guides before upgrading from 1.0.4 to 1.1 – a number of API changes have been made, and these guides detail how to work through them, and how to use the new jQuery 1.0 Compatibility Plugin to keep 1.0-style functionality in 1.1.

New Features:

  • By all of our counts, jQuery 1.1′s selectors are 10x-20x faster than those in jQuery 1.0.4. This should provide a noticable difference in your jQuery applications.
  • Common selectors like div#id, div .class, td:nth-child(1), and div > div are all significantly faster. It’s a complete world of difference. Try them out and you’ll see.
  • You can now pass in a function as a value for an attribute or a css property. The function is executed and its return value is set as the value for the property. For example:
    // 1.0 Code
    $("a").each(function(){
        $(this).attr("href", "/item/" + this.id);
    }).show();
    
    // 1.1 Code
    $("a").attr("href", function(){ return "/item/" + this.id; }).show();
  • You can now unbind an event handler from within itself. This allows you to have event handlers that are only bound for a specific number of executions, for example:
    $("button").click(function(e){
        // Unbind the event handler if a specific form is hidden
        if ( $("#submitForm").is(":hidden") ) {
            $(this).unbind( e );
        }
    });
  • Easily bind an event that will only occur once (this replaces the old .oneclick() functionality):
    // Show a thank you message for a form submission, but only once
    $("form").one("submit",function(){
        $("#thankyou").show();
    });
  • You can now set the text value of an element (this is different from .html(), where in .text() all HTML is displayed as text).
    $("pre").text("<b>Hello</b>, how are you?");
    
    // Result:
    <pre>&lt;b&gt;Hello&lt;/b&gt;, how are you?</pre>
  • You can now build your own filters, using a custom function. (This was in 1.0, but it wasn’t documented very well.)
    // Find all divs whose parent isn't hidden
    $("div").filter(function(){
      return $(this).parent(":hidden").length > 0;
    });
  • You can now pass a comma-separated list of selectors to the following filter functions:
    filter, find, not, siblings, parents, children, next, prev. This allows you to do some very cool stuff:

    // Find all radio buttons, or checkboxes, in a form
    $("form input").filter(":radio, :checkbox");
    
    // Find the next element that's a span, or a div
    $(this).next("span, div");

2) Refreshed Web Site Design

jQuery Site Screenshot
The design of the jQuery web site has finally be given a much-needed facelift. This was planned out by the fantastic jQuery Design Team and implemented by Nate Cavanaugh. The design team has a full redesign/restructuring planned, but we wanted something that would help us get from our current design to the complete overhaul. Hope you enjoy it – and be sure to thank Nate, Bradley, or Skye for their job well done!

3) Overhauled Documentation

A big point that we’ve been working with, lately, was to really pull together and categorize the jQuery Documentation, Tutorials, and API into one centralized location. The result of this effort is the new:
http://docs.jquery.com/
All jQuery documentation can be found in this one, central, location – making it easier for you to find what you need and get your work done faster. We hope you enjoy this new structuring, please let us know if you have any suggestions for what we can add to make it better.

4) A Secret…

We’ve been holding this one back a while, but we’re finally ready to let it go… There’s a jQuery Book in the works! An excited publisher has stepped up, and the authors are already a quarter of the way complete. There’s still some details in the works, and we’re going to tell all once its getting nearer to completion, but right now it’s looking like we’re going to have a late-Spring/early-Summer release of the first jQuery book!

Blank Book

I hope you enjoy everything – a lot of time and effort has really gone into making this release great. Be sure to thank everyone on the jQuery Team, they’ve put a lot of time and effort into making this release come out really good.

I’ll be doing a “State of the Query” post tomorrow, to talk about where jQuery has come during this past year, and the evangelism team will be doing a couple blog posts about what you can do with the new jQuery 1.1.

Thank you, everyone, for making this a fantastic first year for jQuery.

85 thoughts on “jQuery Birthday: 1.1, New Site, New Docs

  1. Joel Birch on said:

    Thanks so much to the jQuery team for their amazing work and also to the entire community for all the support given to each other throughout the last year. You are all so loveable! ;)
    Oh, and… OMG a book! Awesome.

  2. Pingback: Learning jQuery » jQuery 1.1 Released!

  3. DongDongFace on said:

    Very Cool!!!!!!!!!!
    I am a jQuery super Fans!!!!
    It is useful for my design of webcode!

    Thanks jQuery Design Team !!!! Your are great !

  4. seventoes on said:

    very nice job john! i couldnt live without jquery!

    also, the engrish in the post above is awesome!

  5. Happy Birthday! I love 1.1, I’ve been using svn for some time and it is great. The new website and doc are awesome also. Kudos to all involved.

  6. Looks awesome. Congratulations!
    I hope it captures the imagination of the world the way it has mine.

    One little crit: The main site looks kinda messed up on my IE7 WinXP SP2.

  7. Website background images all disappear onload in ff2 for me. Actually loads at first but says it is still getting something from quantserv and when the page finishes loading that and google analytics, the background suddenly all disappears!

  8. Ooops, sorry, I just realized I had an old greasemonkey script to change the old site white so it was readable. Fine now after removed.

    Still, whatever it is fetching from quantserve is taking ages to load, maybe 10 seconds extra..

  9. Pingback: jQuery 1.1 Selector Speeds at Aaron Heimlich - Web Developer

  10. Congrats on the 1.1 release! I’m having a little trouble navigating the new site. Links like dev/recent/ and dev/bugs are no longer on the footer menu.

  11. Pingback: » Свершилось! Подробно

  12. Pingback: Interaction Design Blog » Blog Archive » DomQuery is extremely fast

  13. Congratilations, you’ve done a lot for one year – build the excellent jQuery and build the excellent community around it. This library made my life easier.

  14. Pingback: jQuery 1.1 - Jowra | Webdesign - Photo - Artwork

  15. Doesn’t jQuery have some high profile users? Technorati for instance? Why not put some testimonials on your front page to help beef up your image?

    Oh and happy birthday. :-)

  16. Pingback: NM-blog » Code Igniter and jQuery Autocomplete

  17. Pingback: JQuery cumple su primer año » ingeniuz :: desarrollo web útil

  18. Great Work everyone!
    Thanks a lot for this phantastic piece of code!

    By the way, today, yes, right today, Drupal 5.0 was released, and it uses jQuery as its JavaScript library.
    AFAIK, Drupal is now the first bigger CMS that uses jQuery as the offical core js library!

    And, surprisingly, today is also Drupal’s 6th birthday!

    Seem to have a lot in common, the two ;)

  19. Pingback: jQuery 1.1 final « felipediesel.net

  20. Pingback: jQuery 1.1, nueva versión y nuevo sitio web - aNieto2K

  21. Viva la JQUERY! Good work guys! The book sounds great and I’ll make sure to include the 1.1 release announcement in this weeks Juxtaviews roundup. Rock n roll!

  22. Pingback: F-LOG-GE » Blog Archive » jquery hat Geburtstag

  23. Nice one! Thank you very much!

    I got some questions though.. I ran the speed test, here are four results:

    body -> old: 0.2ms -> new: 0ms
    #speech5 -> old: 0.2ms -> new: 0ms
    div #speech5 -> old: 10ms -> new: 45.8ms
    #scene1 #speech1 -> old: 0.4ms -> new: 3ms

    How comes the first two results show only a small difference and why do the last two results are so much slower?!

  24. Way to go guys! This is truely awesome! How many other JS/Ajax libraries out there can boast about getting a book published all about their library? W00T!

    Sweet job *everyone*!

  25. @Dominik: The problem is that contextual ID-searching is an expensive operation. Pre-1.1, all #foo searches were just doing document.getElementById() (which is really fast, but quite wrong). In order to make it right, you have to traverse through all descendant elements to find the element that has a specific ID. It’s slower, but at least right. (And this only effects selectors like “div #foo” or “#foo #bar”)

  26. Pingback: Angel Colberg » Blog Archive » jQuery 1.1 API

  27. Pingback: Ajaxian » jQuery 1.1 is reborn on its first birthday

  28. wesley on said:

    Congrats,

    What’s next for jquery? What new things can we look forward to?

    I’d like to see a jquery-lite.. Let’s face it, claiming that the library is small is no longer true, (uncompressed counts). I want a compressed version under 10kb :)

  29. Doug Martin on said:

    Very cool. I’ve been following jQuery since you did a session at BarCampBoston. I’ll be using it in an upcoming client site. Thanks for all the good work.