jQuery 1.11.0/2.1.0 Beta 2 Released

Posted on by

The latest betas of jQuery 1.11 and 2.0 have arrived! You can get them here:

Don’t forget that jQuery 1.x supports IE 6/7/8 and jQuery 2.x does not.

What’s in the beta

Asynchronous Module Definition (AMD): The biggest change in 1.11/2.1 continues to be AMD. jQuery has supported having the library itself loaded by an AMD loader ever since version 1.7. Now, we’re using AMD internally as well, replacing our old modular build system. If you want to know more, read the README file.

Published on npm: The 2.x branch of this beta and all our future 2.x releases will be published on npm so that you can use it with node or packages like browserify. Note that the main jquery page is currently not up to date, and won’t be until we push the final 2.1.0 to it. If you want to install the beta, you can use npm install [email protected]. Many thanks to Domenic Denicola who has already reported bugs #14548 and #14549 that will be fixed in the next go-round.

Performance: Our new “lazy feature detects” reduce the startup time for the library, which is especially good for mobile devices. If you never call the API, you never even need to run that code! We also found and removed some situations where jQuery unnecessarily forced a page layout to occur.

Bug fixes: Lots and lots of bug fixes are in this release, including several to ensure the latest versions of browsers like IE11 work smoothly and eliminate console warnings in Chrome. Many fixes are shared across both versions. You can see the complete changelog below.

Breaking changes: None! We’re committed to making this an easy update for you if you already did an upgrade to 1.9+ or are using the jQuery Migrate plugin.

Please do give these betas a try and let us know whether everything is working as you’d like. It’s always frustrating to us when we make a new production release and people find bugs that could have been fixed during the beta process. It only takes a few minutes to smoke-test your code against these betas, and it will save both you and us a lot of future heartache!

Sad sourcemap story

One of the changes we’ve made in this beta is to remove the sourcemap comment. Sourcemaps have proven to be a very problematic and puzzling thing to developers, generating scores of confused questions on forums like StackOverflow and causing users to think jQuery itself was broken.

We’ll still be generating and distributing sourcemaps, but you will need to add the appropriate sourcemap comment at the end of the minified file if the browser does not support manually associating map files (currently, none do). If you generate your own jQuery file using the custom build process, the sourcemap comment will be present in the minified file and the map is generated; you can either leave it in and use sourcemaps or edit it out and ignore the map file entirely.

We will be encouraging browser makers to come up with better ways to handle sourcemaps for situations like jQuery’s, where there are widely distributed files on CDNs. We’d like sourcemaps to be robust and gracefully handle situations like file renaming or missing files. See our bug ticket for more information.

Let’s give thanks

As Thanksgiving Day approaches, let’s give a hand to the great people who have contributed to jQuery core code since the last release: Amey Sakhadeo, Anthony Ryan, Chris Antaki, Chris Price, Corey Frang, Daniel Herman, Dominik D. Geyer, George Kats, Guy Bedford, Ilya Kantor, Jeremy Dunck, Jörn Zaefferer, Lihan Li, Marian Sollmann, Michał Gołębiowski, Mike Sidorov, Noah Hamann, Oleg Gaidarenko, Richard Gibson, Ronny Springer, Scott González, Sindre Sorhus, Terry Jones, Timmy Willison, and Timo Tijhof.

jQuery 1.11 and 2.1 Beta 2 Changelog (common to both)

Ajax

Attributes

Build

Core

Css

Data

Effects

Event

Selector

Support

jQuery 1.11 Beta 2

Ajax

Core

Effects

Support

jQuery 2.1 Beta 2

Ajax

Build

Core

Event

jQuery 1.11 and 2.1 Beta 1 Released

Posted on by

Ahoy Matey! Do you know what today is? It’s Talk Like a Pirate Day!

Before the jQuery team weighed anchor and ran for the grog, we left a treasure chest on the jQuery CDN filled with beta versions of jQuery 1.11 and 2.1. Here be the treasure map to the bounty:

Don’t forget that jQuery 1.x supports IE 6/7/8 and jQuery 2.x does not. Here are the highlights of what changed:

Asynchronous Module Definition (AMD): In this release we’re going full-mast with AMD. jQuery has supported having the library itself loaded by an AMD loader ever since version 1.7. Now, we’re using AMD internally as well, replacing our old modular build system. Colin Snover started it with some fine cutlass work, then Timmy Willison made sure the whole library was drawn and quartered properly with AMD. He even mollycoddled you with a fine README file so you can be buildin’ yer own custom version. And because we’re pirates, we’re using aaaarrrrr.js to build it.

Performance: Michał Gołębiowski led the charge to reduce jQuery’s startup time by deferring much of the feature detection code so that it runs the first time you use an API call, rather than on page load. If you never call the API, you never even need to run that code! We also found and removed some situations where jQuery unnecessarily forced a page layout to occur.

Bower support: We’re now using Bower for a lot of our internal dependency management, and plan to publish production versions of jQuery to Bower in the future.

Bug fixes: We keelhauled a few scurvy bugs since the last versions. There’s a list down the way if you want to be knowin’.

API changes: None! With all the internal code changes for AMD, we didn’t want to change a lot of APIs in this version. Your old scurvy code should work with no problems as long as you already did an upgrade to 1.9+ or are using the jQuery Migrate plugin.

Now we know some of you may not be takin’ the time to try this beta. We got a name for you: bilge rats. Don’t be comin’ to us after the release and complainin’ about bugs. Get on board and man the lines so we can get this code shipshape before the beta is over!

A tip of the pirate hat to the sea dogs and scallywags who got this release under way: Timmy Willison, Michał Gołębiowski, Oleg Gaidarenko, Richard Gibson, Amey Sakhadeo, Jörn Zaefferer, Chris Price, Daniel Herman, Guy Bedford, Jeremy Dunck, Mike Sidorov, and Terry Jones. And of course an aye-aye shout-out to the original jQuery pirate, Long John Resig!

jQuery 1.11 and 2.1 Changelog (common to both)

Ajax

Attributes

Build

Core

Css

Effects

Event

Selector

Support

jQuery 2.1

Build

Core

jQuery 1.11

Effects

jQuery 1.10.2 and 2.0.3 Released

Posted on by

It’s nearly Independence Day here in the USA, so we’re delivering something fresh off the grill: jQuery 1.10.2 and 2.0.3. These releases fix a few pesky bugs that have been reported over the past month, but the list is refreshingly small. Since some of the bugs spanned both the 1.x and 2.x branches we’re releasing new versions of both to keep them in sync.

You can get the latest files from the jQuery download page, including sourcemap files and links to helpful tools such as jQuery Migrate. If you’re upgrading from a version of jQuery before 1.9, please do read through that page carefully to make your migration as pain-free as possible. Remember that it may take a few days for the CDNs at Google, Microsoft, and CDNJS to respond to the rocket’s red glare and post the latest versions. In the meantime, use the copy on the jQuery CDN.

We’re pretty optimistic that these latest bug-fix releases should be free of surprises. If you drop the new files into your site and see fireworks, please do your patriotic duty and report a bug with a test case (preferably using jsFiddle) at our bug tracker.

These releases wouldn’t have happened without the contributions of Jason Bedard, Jason Merino, Jörn Zaefferer, Michał Gołębiowski, Nguyen Phuc Lam, Oleg Gaidarenko, Richard Gibson, Rick Waldron, Terry Jones, and Timmy Willison.

jQuery 1.10.2 and 2.0.3 Changelog (common to both)

Build

Css

Selector

jQuery 2.0.3 Changelog (specific to 2.x)

Data

Manipulation

jQuery 1.10.1 and 2.0.2 released

Posted on by

A new release already? It’s only been a week! Yes, because you deserve it. We’re greatly encouraged by all the people who upgraded and found our well-hidden “we completely hosed relative animations” easter egg. This release restores += animations and friends to their former glory, plus it fixes a few smaller bugs that were reported. Since the bug affected both the 1.x and 2.x branches, we’re doing new releases for both.

As always, you can get the latest files from the jQuery download page, including sourcemap files and links to helpful tools such as jQuery Migrate. Thank you Tom Byrer for pointing out that the sourcemap files weren’t listed on the download page, and also for contacting the CDNJS folks to have them host the sourcemap files.

Many thanks to jQuery team members Corey Frang, Oleg Gaidarenko, and Richard Gibson for quickly jumping on these issues and creating unit tests to prevent future regressions. This ensures we never make the same mistake twice, but instead deliver fresh and unique bugs with each release. If you find any of those, please report them with a test case (preferably using jsFiddle) at our bug tracker.

I hope that we’ll see many of you at the jQuery Conference Portland, coming up just two weeks from now!

jQuery 1.10.1 and 2.0.2 Changelog

Effects

Selector

jQuery 1.10.0 and 2.0.1 Released

Posted on by

It’s a wonderful day for a software release. Such a wonderful day, we’re doing two software releases! Today it’s jQuery 1.10.0 and jQuery 2.0.1 making their debut — five years to the day after jQuery 1.2.6 was released.

A simultaneous release isn’t always easy, but it can be very satisfying. The team is certainly satisfied with this duo of deliveries; those of you who have already upgraded to the 1.9/2.0 level should have an easy time with these versions. If you’re upgrading older code, the advice in the jQuery 1.9 upgrade guide still applies to these two releases as well. Also don’t forget that jQuery. 2.0 doesn’t support IE 6, 7, or 8 since we’re leaving that work to the 1.x branch. If you need some help updating or keeping older pre-1.9 jQuery code going, don’t forget about the jQuery Migrate plugin.

As always, the latest versions are all available on our download page.

What’s new? Our main goal with these two releases is to synchronize the features and behavior of the 1.x and 2.x lines, as we pledged a year ago when jQuery 2.0 was announced. Going forward, we’ll try to keep the two in sync so that 1.11 and 2.1 are feature-equivalent for example. We don’t anticipate you’ll find any of these to be disruptive changes. Here are a few highlights:

Relaxed HTML parsing: You can once again have leading spaces or newlines before tags in $(htmlString). We still strongly advise that you use $.parseHTML() when parsing HTML obtained from external sources, and may be making further changes to HTML parsing in the future.

Increased modularity: In either version, you now can do a custom build that excludes the .wrap(), .wrapAll(), .wrapInner() and .unwrap() methods. If all your code is using the newer .on() event methods introduced in jQuery 1.7, you can also exclude .bind() and .delegate() as well. The builds available on the jQuery, Google, and Microsoft CDNs continue to include all methods to provide maximum compatibility.

No more IE9 focus of death: If a page inside an iframe attempts to focus an element or even tries to read document.activeElement before the page is ready, it causes an error. We now work around this issue.

Cordova bug fix in 2.0.1: The Cordova deviceready event doesn’t properly set an event target, so we work around the problem by setting the target to document.

Many thanks to the people who contributed work to jQuery 1.10.0 or jQuery 2.0.1: Brandon Johnson, Chris Talkington, Dmitry Gusev, James Burke, Jason Bedard, Julian Aubourg, Kyle Robinson Young, Mark Raddatz, Michał Gołębiowski, Nguyen Phuc Lam, Oleg Gaidarenko, Renato Oliveira dos Santos, Richard Gibson, Rick Waldron, Scott González, Timmy Willison, Timo Tijhof, and Tom H Fuertes.

jQuery 1.10.0 Changelog

Ajax

Attributes

Build

Core

Event

Manipulation

Selector

Support

Traversing

jQuery 2.0.1 Changelog

Ajax

Attributes

Data

Effects

Event

Manipulation

Selector

Traversing

jQuery 1.10 Beta 1 Released

Posted on by

Today the team is releasing jQuery 1.10 Beta 1. This release should be a relatively easy upgrade for any code that has already been updated for jQuery 1.9/2.0, and it doesn’t introduce a lot of breaking changes–at least not that we know of! That’s why we do beta releases. You tell us.

It may seem like only yesterday that jQuery 1.9 was released, but it was actually all the way back in January. In the meantime, we’ve also delivered jQuery 2.0, the first version of jQuery to leave behind the nightmarish workarounds needed by older versions of Internet Explorer. jQuery 1.10 includes some minor tweaks that we originally introduced in jQuery 2.0, plus bug fixes for issues reported since jQuery 1.9.1.

The biggest change you’re likely to see is that we’ve loosened up the criteria for HTML processing in $(), allowing leading spaces and newlines as we did before version 1.9. We still recommend the use of $.parseHTML() for any HTML coming from external sources. Future versions of jQuery may place tighter restrictions on the kind of markup that $(string) will process, to help you to avoid the ever-present threat of cross-site scripting (XSS) issues.

If you haven’t yet upgraded to the 1.9/2.0 versions yet, catch up by reading the previous blog announcements for jQuery 1.9 and jQuery 2.0. Be sure to check out the jQuery 1.9 Upgrade Guide and the jQuery Migrate plugin.

You can get the beta file here: http://code.jquery.com/jquery-1.10.0-beta1.js

Try this beta code with your most treasured projects and let us know how it works. If you find problems, even when using jQuery Migrate, please report them along with a test case demonstrating the bug at bugs.jquery.com. Please don’t report bugs or ask for help in the blog comments below.

It’s our goal to keep the 1.x and 2.x lines in sync functionally so that 1.10 and 2.0 are equal, followed by 1.11 and 2.1, then 1.12 and 2.2 … well, you see the pattern. Any feature additions or functional changes will happen on these major-point releases. Patch releases will simply fix bugs or bring the two further into sync.

Many thanks to the people who contributed work since 1.9.1 was released: Brandon Johnson, Dmitry Gusev, James Burke, Jason Bedard, Julian Aubourg, Kyle Robinson Young, Mark Raddatz, Michal Golebiowski, Nguyen Phuc Lam, Oleg Gaidarenko, Richard Gibson, Rick Waldron, Scott González, Timmy Willison, Timo Tijhof, and Tom H Fuertes.

jQuery 1.10 Beta 1 Changelog

Attributes

Build

Core

Event

Manipulation

Selector

Support

jQuery Migrate 1.2.1 Released

Posted on by

They say there are no second acts in software … well, there are always second acts in software. Especially when the first act bombs. With that in mind, version 1.2.1 of the jQuery Migrate plugin has arrived. It can be used with either jQuery 1.9 or jQuery 2.0.

This minor update addresses regressions created by the security fix in the 1.2.0 release that rejected some valid HTML strings. Many thanks to GitHub users gerrod, basc, Leonya, krzyko, and lorddefinitia for reporting these issues.

You can find this latest version of the jQuery Migrate plugin on jQuery’s CDN:

Complete instructions and a complete list of the diagnostics given by the plugin are located in the plugin project’s README file.

A full list of all changes are in the issue tracker.

jQuery 2.0 Released

Posted on by

You asked for it, you got it: jQuery 2.0 has arrived!

As promised, this version leaves behind the older Internet Explorer 6, 7, and 8 browsers. In return it is smaller, faster, and can be used in JavaScript environments where the code needed for old-IE compatibility often causes problems of its own. But don’t worry, the jQuery team still supports the 1.x branch which does run on IE 6/7/8. You can (and should) continue to use jQuery 1.9 (and the upcoming 1.10) on web sites that need to accommodate older browsers.

Where to Get It

The final jQuery 2.0.0 files can be found here on the jQuery CDN:

The files should also be available on the Google and Microsoft CDNs soon, but please give these folks a few days before releasing a storm of impatient tweets. Also remember that production web sites should be requesting a specific version from any CDN; using a non-specific version like /2/ or jquery-latest.js is considered harmful to your web site’s health and performance.

If you’re upgrading from a version before 1.9, we recommend that you use the jQuery Migrate plugin and read the jQuery 1.9 Upgrade Guide, since there have been a lot of changes. It’s easy to use the plugin, just include it in your HTML file after jQuery and open your browser console to see the messages it generates:

<script src="http://code.jquery.com/jquery-2.0.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script>

How to Use It

jQuery 2.0 is intended for the modern web; we’ve got jQuery 1.x to handle older browsers and fully expect to support it for several more years. If you want, you can serve 2.0 to newer browsers and 1.9 to older ones using our conditional comment trick, but that is not required. The simplest way to support older browsers is to use jQuery 1.x on your site, since it works for all browsers.

With the release of jQuery 2.0, there are a few environments where the jQuery team will no longer support use of the 1.x line because 2.x is a far better choice. These are typically non-web-site scenarios where support for older IE isn’t relevant. They include:

  • Google Chrome add-ons
  • Mozilla XUL apps and Firefox extensions
  • Firefox OS apps
  • Chrome OS apps
  • Windows 8 Store (“Modern/Metro UI”) apps
  • BlackBerry 10 WebWorks apps
  • PhoneGap/Cordova apps
  • Apple UIWebView class
  • Microsoft WebBrowser control
  • node.js (combined with jsdom or similar)

Many of these environments are themselves a work in progress, and have unique sets of rules or restrictions that are different from the ones typically found when jQuery is used for browsers on Internet web sites. Although we aren’t able to test regularly in all of these non-browser scenarios, we’d like to hear about your experiences in using jQuery with them. Even better, we’d love for the communities supporting these environments to pool and share their knowledge about how to use jQuery 2.0 there.

How 2.0 Changed

Here are some highlights of the changes that jQuery 2.0 brings:

No more support for IE 6/7/8: Remember that this can also affect IE9 and even IE10 if they are used in their “Compatibility View” modes that emulate older versions. To prevent these newer IE versions from slipping back into prehistoric modes, we suggest you always use an X-UA-Compatible tag or HTTP header. If you can use the HTTP header it is slightly better for performance because it avoids a potential browser parser restart.

Reduced size: The final 2.0.0 file is 12 percent smaller than the 1.9.1 file, thanks to the elimination of patches that were only needed for IE 6, 7, and 8. We had hoped to remove even more code and increase performance, but older Android/WebKit 2.x browsers are now the weakest link. We’re carefully watching Android 2.x market share to determine when we can cross it off the support list, and don’t expect it to take very long.

Custom builds for even smaller files: This feature has been greatly refined and extended since its debut in jQuery 1.8. You can now exclude combinations of 12 different modules to create a custom version that is even smaller. A new minimal selector engine, basically a thin wrapper around the browser’s querySelectorAll API, lets you shrink the build to less than 10KB when minified and gzipped. See the README for instructions on how to create a custom build, and remember that any plugins you use will also need to stick to the subset you select.

jQuery 1.9 API equivalence: jQuery 2.0 is API-compatible with 1.9, which means that all of the changes documented in the jQuery 1.9 Upgrade Guide have been applied to jQuery 2.0 as well. If you haven’t yet upgraded to jQuery 1.9, you may want to try that first. Be sure to use the jQuery Migrate plugin.

The full record of changes can be found in the changelog below, and in the list of commits on GitHub.

What’s Next

In keeping with our pledge to minimize API divergence between the 1.x and 2.x branches, we’ll be releasing a jQuery 1.10 within a couple of months that incorporates the bug fixes and differences reported from both the 1.9 and 2.0 beta cycles. In the future, we will be maintaining feature parity between 1.10 and 2.0, 1.11 and 2.1, etc. Patch releases will happen in each branch on their own schedule, based on team resources and severity of any reported bugs.

Please do try this new release with all your web sites and HTML apps. If you find problems, create a minimal test case (preferably using a site like jsFiddle or jsbin) and submit it to our bug tracker. We’re particularly interested in situations where jQuery 1.9.1 behaves differently than jQuery 2.0.0, since that’s something we’ve tried to avoid.

Who Helped

jQuery 2.0 has been 10 months in the making, a product of the jQuery Core team: Julian Aubourg, Corey Frang, Oleg Gaidarenko, Richard Gibson, Michal Golebiowski, Mike Sherov, Rick Waldron, and Timmy Willison. Oleg and Michal joined the team during the 2.0 odyssey; we’re glad to have them aboard.

Many thanks to the other jQuery team and community members who contributed fixes: Steven Benner, Pascal Borreli, Jean Boussier, James Burke, Adam Coulombe, Tom Fuertes, Scott González, Dmitry Gusev, Daniel Herman, Nguyen Phuc Lam, Andrew Plummer, Mark Raddatz, Jonathan Sampson, Renato Oliveira dos Santos, Ryunosuke Sato, Isaac Schlueter, Karl Sieburg, Danil Somsikov, Timo Tijhof, and Li Xudong.

To those of you who tested the betas and reported bugs, we’re especially thankful for your help since it helped to make the release more solid and stable.

How You Can Help

Please, participate! Try the code (especially the betas), file good bug reports with clear test cases, contribute patches. Write or edit documentation. Come to the jQuery Conference Portland in June and mingle with other jQuery-ites. Visit contribute.jquery.org to learn how to get involved with the project.

You can also become a jQuery Foundation member to support our efforts and get some fabulous gifts in the process!

jQuery 2.0.0 Changelog

Ajax

Attributes

Build

Core

Css

Deferred

Effects

Event

Manipulation

Selector

Support

Traversing

Please do not report bugs in the blog comments! Instead, read the blog post for details on how to report bugs.

jQuery 2.0 Beta 3 Released

Posted on by

We’re coming down the home stretch for the release of jQuery 2.0! Today sees the release of Beta 3.

To paraphrase Dirty Harry: I know what you’re thinking. “Is Beta 3 gonna break my code?” Well, to tell you the truth, in all this excitement we may have lost track of things and introduced some bugs. So being as this is jQuery, the most powerful JavaScript library in the world, and could blow your web site clean off the Internets, you’ve got to ask yourself one question: “Do I feel lucky?” Well, do ya?

We don’t want to accidentally blow your site off the Internets; don’t count on being lucky. That means we really need your help in finding and fixing any bugs that may be hiding in the nooks and crannies of jQuery 2.0. We want to get all the problems ironed out before this version ships, and the only way to do that is to find out whether it runs with your code.

You can get this latest beta from the jQuery CDN: http://code.jquery.com/jquery-2.0.0-beta3.js

You can also use the jQuery Migrate plugin with jQuery 2.0 to restore deprecated features from those older versions and/or diagnose compatibility issues. We strongly recommend that you do use Migrate for older code, it will save a lot of time and trouble in debugging.

Staying in Sync

Remember that jQuery 2.0 will not run on IE 6, 7, or 8. You must run Internet Explorer 9 or 10 in their “modern” mode and not use the X-UA-Compatible feature, for example, to force IE10 into IE7 mode.

The jQuery team will continue to support both the jQuery 1.x and 2.x lines simultaneously for as long as those older versions of IE are still a factor. The currently released version of jQuery 1.x, which is 1.9.1, has the same API as jQuery 2.0. We are planning a 1.10 update to the 1.x line in a few months that will address any minor differences in the two versions. At that point we will still keep the two lines in sync: 1.10 and 2.0, 1.11 and 2.1, etc.

If you’d like to try jQuery 2.0 on web sites where you still need to support IE 6, 7, and 8, you can use conditional comments. All browsers except old IE will get the second script and ignore the first:

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0b3.js"></script>
<!--<![endif]-->

Remember, however, that jQuery 1.x continues to work on all the browsers that jQuery supports.

What’s New

Here are the major changes since Beta 2:

Node.js compatibility. If the jquery.js file is included in Node via require(), it will export the jQuery object.

Windows 8 Store App compatibility. Some feature detects that were only needed for IE 6/7/8 were removed to prevent a security exception in Windows Store apps.

More bug fixes. This beta includes fixes to bugs reported since jQuery 2.0 beta 2 and jQuery 1.9.1 were shipped. The complete list is below.

Remove jQuery.support.boxModel. Nobody should be using this property since it has been deprecated since jQuery 1.3 and jQuery itself has never supported Quirks mode.

Further nips and tucks to the code. Fixing bugs often adds more bytes, but we’ve been able to actually reduce the size of the full minified/gzipped build by a couple of dozen bytes.

The wrap methods can now be excluded in a custom build. If you (and the plugins you use) aren’t calling any of the wrap methods like .wrapAll() or .unwrap(), you can leave them out of your custom build.

Custom builds under 10k bytes! If you’re able to exclude all the optional modules, you’ll be rewarded with a custom build that’s only 9,226 bytes when minified and gzipped. See the beta 2 blog post for more information on how to do custom builds.

The full list of commits is available on GitHub and the closed bug tickets are below. Many thanks to Rick Waldron, Michal Golebiowski, Li Xudong, Timmy Willison, Nguyen Phuc Lam, Steven Benner, Tom Fuertes, Richard Gibson, Scott González, and Oleg Gaidarenko for their efforts on this beta.

Ajax

Build

Core

Css

Deferred

Effects

Event

Manipulation

Selector

Support

Traversing

jQuery 2.0 Beta 2 Released

Posted on by

The next beta of jQuery 2.0 has arrived! This beta has several changes and tweaks based on the feedback we received from those of you who generously tested the first beta. We really need you to test this version as well and let us know what still needs to be done. We believe this version is very stable and ready for you to try; don’t wait until the final release and then find out your code doesn’t run with it.

Remember that jQuery 2.0 will not run on IE 6, 7, or 8; we’re saving that duty for jQuery 1.9. We fully expect that most Internet web sites may continue to use jQuery 1.x for quite a while, as long as older versions of IE still comprise a large proportion of web surfers. And so the jQuery team will also continue to support both the jQuery 1.x and 2.x lines. Don’t feel like you’re missing something or falling behind by using 1.9 on your web site, since the APIs for 1.9 and 2.0 are the same.

If you’d like to try jQuery 2.0 on web sites where you still need to support IE 6, 7, and 8, you can use conditional comments. All browsers except old IE will get the second script and ignore the first:

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0b2.js"></script>
<!--<![endif]-->

There are lots of other environments where jQuery 2.0 should fit in very well. Here are a few suggestions:

  • Google Chrome plugins
  • Mozilla XUL apps and Firefox extensions
  • Firefox OS apps
  • Chrome OS apps
  • Windows 8 Store (“Modern/Metro UI”) apps
  • BlackBerry 10 WebWorks apps
  • PhoneGap/Cordova apps
  • Apple UIWebView class
  • Microsoft WebBrowser control
  • Cheerio or jsdom with node.js
  • Intranet applications

On the node.js front, the jQuery team now owns the “jquery” and “jQuery” names in npm and will soon be shipping 2.0 releases there.

You can get this latest beta from the jQuery CDN:

http://code.jquery.com/jquery-2.0.0b2.js

To run pre-1.9-era code with jQuery 2.0, you can also use the jQuery Migrate plugin to restore deprecated features from those older versions and/or diagnose compatibility issues. We strongly recommend that you do use Migrate for older code, it will save a lot of time and trouble in debugging.

What’s New

Lots of bug fixes: All the relevant fixes from jQuery 1.9.1 and 1.9.2pre have been incorporated into jQuery 2.0 beta 2. We sadly had to back out some optimizations that aren’t supported by older versions of WebKit such as Android 2.3, but most of those didn’t have a significant size impact. Still, we plan to bring them back as soon as we can! To help us out, anytime you see an old Android phone you can “accidentally” whack it with a hammer.

New .data() implementation: This new code is a complete rewrite by Rick Waldron. It’s smaller, simpler, and much more maintainable than the old code.

Increased modularity in custom builds: You can now exclude all the redundant event shorthands such as .mouseover(...) if you’re willing to use .on("mouseover"...) instead.

Minimal selector engine: Richard Gibson created a small wrapper around the browser’s native querySelectorAll and matchesSelector APIs that can be used as a replacement for the full-fledged Sizzle selector engine. Be aware, however, that there are major differences in the supported selectors and semantics. This minimal engine does not support jQuery selector extensions like :radio or :first for example.

Custom Builds

We’d love for you to try out the custom build system which is based on grunt. The README gives more detail on making a custom build. As of beta 2 you can replace Sizzle with a simple selector engine and exclude css, event aliases, animations, offset, and deprecated functionality such as .andSelf() that has not yet been removed. In addition you can exclude a subset of the script, JSONP, or XMLHTTPRequest transports. That’s right, reject any module in our jQuery reality and substitute your own.

Here is an example of what you can save with modular builds. Let’s say you don’t need the css, offset, dimensions, or deprecated modules and plan to do animations completely via CSS transitions and classes. In addition you only use JSONP via $.ajax(). You’ll use .on() for event management and keep your selectors simple so that the minimal selector engine can do the job. The build command to do that is:

grunt custom:-sizzle,-css,-event-alias,-effects,-offset,-dimensions,-deprecated,-ajax/xhr

The resulting file from that custom build is just 17,530 bytes when transferred by gzip, which is 40 percent smaller than the full 2.0 build at 29,387 bytes gzipped. For comparison, the current 1.9 branch is 32,770 bytes gzipped.

We still think that the vast majority of jQuery users are best served by the simplest option: Use the full version of jQuery, served from a CDN or your local server. Most jQuery plugins are not written in a way that would allow you to use a subset of jQuery core functionality — after all, they never anticipated any of it would be missing! But for situations where it’s worth the time to determine those dependencies, jQuery’s current level of modularity offers awesome flexibility.

Many thanks to the people who contributed fixes to this release: Adam Coulombe, Andrew Plummer, Danil Somsikov, Dmitry Gusev, Isaac Schlueter, James Burke, Jean Boussier, Julian Aubourg, Karl Sieburg, Mark Raddatz, Mike Sherov, Nguyen Phuc Lam, Oleg Gaidarenko, Pascal Borelli, Richard Gibson, Rick Waldron, Ryunosuke Sato, Timmy Willison, and Timo Tijhof. Special recognition to Scott González for his minimalist work simply titled, “Whitespace“.

Changelog

Ajax

Build

Core

Css

Deferred

Effects

Event

Manipulation

Selector

Support

Traversing