jQuery 1.9 final, jQuery 2.0 beta, Migrate final released

Posted on by

Are you sitting down? Well sit down, in front of your computer, and start downloading. We have several new jQuery releases for you to test. For your convenience, jQuery can even be downloaded while standing.

First up are the final versions of jQuery 1.9 and jQuery Migrate 1.0. We think these releases are pretty solid, because very few of you reported any problems in the beta versions. Just be sure to read the information in the jQuery 1.9 upgrade guide so that your transition will be smoother.

Next, take out your sunglasses. Today you get a glimpse at the future, and it’s bright. jQuery 2.0 is in beta test! We know it’s a lot to take in, so let’s recap the positioning for jQuery 1.9 and 2.0:

  • jQuery 1.9 and 2.0 have the same API. Several deprecated features such as $.browser have been removed from both versions. It’s all laid out in the jQuery 1.9 upgrade guide.
  • jQuery 1.9 runs on Internet Explorer 6, 7, and 8 (“oldIE”), just like previous versions. Consider it a cleaner, slimmer, modern-API upgrade from jQuery 1.8.
  • jQuery 2.0 will not run on oldIE. As a result of removing several layers of barnacle-encrusted code, it will be both faster and smaller than jQuery 1.9.
  • The team is supporting both jQuery 1.9 and 2.0 into the future. You choose which version you want to use based on your needs.

The jQuery Migrate plugin can be used with either 1.9 or 2.0 to detect deprecated and removed features, or to restore old features for those sticky situations where you need old code to run with new jQuery. The plugin and the messages it generates are documented in the project README.

If you’re on a recent version of jQuery core and have been avoiding deprecated features, these new jQuery releases may work for your code right out of the box. (Just remember, jQuery 2.0 doesn’t work on IE 6, 7, or 8!) Still, we recommend that you always start by including the jQuery Migrate plugin to see if it gives you any warnings.

The jQuery 1.9 final files are available on jQuery’s CDN, and should be available on the Google and Microsoft CDNs within a few days:

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

Or, for testing jQuery 2.0 beta 1, use the jQuery CDN:

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

For diagnostic purposes, you can also include the jQuery Migrate plugin with versions of jQuery all the way back to 1.6.4 to see what changes may cause issues with your code when you finally upgrade.

No matter which version of jQuery you use with the plugin, be sure to open the browser’s console to see what warnings or errors are being generated. Warnings given by the plugin start with the word “JQMIGRATE” and are listed in the plugin’s documentation. The description explains why the warning was given and how it can be fixed.

What’s New in 1.9

It may be a few weeks before the complete documentation for this release lands at api.jquery.com, especially since the API and other documentation sites are in the process of their own upgrade. For now, here’s a summary of what’s new and changed.

Streamlined API: Many deprecated and dubious features have been removed, as documented in the upgrade guide.

New .css() multi-property getter: Now you can pass .css() an array of CSS property names and it will return an object with the current values of all those CSS properties:

var dims = $("#box").css([ "width", "height", "backgroundColor" ]);
//  { width: "10px", height: "20px", backgroundColor: "#D00DAD" }

Enhanced cross-browser CSS3 support: jQuery 1.9 now supports the following CSS3 selectors across all browsers, all the way back to IE6: :nth-last-child, :nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :target, :root, and :lang.

New .finish() method: This method can be used to immediately complete all the animations queued on an element. The jQuery 1.9 RC1 blog post has more information and an example.

Source map support: You can now run the minified version of jQuery but use source maps for debugging. This can be extremely valuable for tracking down problems on a production web site. See the jQuery 1.9 RC1 blog post for a full description.

Many, many bug fixes: We’re especially proud of what we hope will be the final set of fixes for obscure issues in IE 6, 7, and 8. See the changelog below for a complete inventory.

Getting started with 2.0

Since jQuery 2.0 has its foundation in the work for jQuery 1.9, all the discussion in the upgrade guide also applies to 2.0. The Migrate plugin will identify many of these issues for you automatically.

If you’re using jQuery in non-web-site HTML situations such as an Android, iOS, or Windows 8 app, or a Chrome/Firefox add-on, jQuery 2.0 is an awesome choice. You can even use jQuery 2.0 on web sites if you don’t support oldIE or don’t mind using conditional comments:

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

With this first beta of jQuery 2.0 we’ve made a huge down payment on major cleanup, cutting the size of the library by more than 10 percent. But we’re nowhere near done. There is more refactoring possible now that we can consistently depend on modern JavaScript, CSS, HTML, and DOM features being there. We’ll continue to tighten and clean up the code before 2.0 ships, and extend our work to make more functionality optional to shrink the size of custom builds.

They Built This For You

Many thanks to the people who have contributed to these two releases since 1.8.3 was shipped: Akintayo Akinwunmi, Alexander Farkas, Allen J Schmidt Jr, Ben Truyman, Bennett Sorbo, Callum Macrae, Carl Danley, Corey Frang, Daniel Gálvez, Dan Morgan, David Bonner, David Fox, Devin Cooper, Elijah Manor, Erick Ruiz de Chavez, Greg Lavallee, Ismail Khair, James Huston, Jay Merrifield, Jonathan Sampson, Julian Aubourg, Marcel Greter, Matt Farmer, Matthias Jäggli, Mike Petrovich, Mike Sherov, Oleg Gaidarenko, Paul Ramos, Richard Gibson, Rick Waldron, Rod Vagg, Roland Eckl, Sai Wong, Scott González, Sebi Burkhard, Timmy Willison, Timo Tijhof, Tom Fuertes, Toyama Nao, and Yi Ming He. Good work guys!

jQuery 1.9.0 final and 2.0.0 beta Changelog

Any tickets listed here that are not related to IE 6/7/8 support are also in the jQuery 2.0 beta.

Ajax

Attributes

Build

Core

Css

Data

Deferred

Effects

Event

Manipulation

Misc

Offset

Selector

Support

Traversing

63 thoughts on “jQuery 1.9 final, jQuery 2.0 beta, Migrate final released

  1. Aleksey Fomichenko on said:

    The $(…).removeClass() no longer removes all classes. Is this a bug in v1.9.0?

  2. Aleksey Fomichenko on said:

    @dmethvin, thanks for letting me know. P.S. The problem is reproducible in your jsfiddle session if you check to include the jQuery UI 1.9.2.

  3. Michelle on said:

    I’ll be using jQuery 2.0 for mobile sites where there is zero need to support IE6, 7, 8. Thanks for giving mobile developers this option.

  4. EPICSIGN on said:

    1.9.1 prop() bug?

    prop(‘required’, false) -> required=”false” in IE8
    and
    prop(‘required’, null) -> required=”null” in IE8

  5. Gary on said:

    I thought IE 10 doesn’t respect conditional comments? So how are we supposed to use 1.9 and 2.0 together as outlined above?

  6. Pavel ZMolik on said:

    Hello,
    I tried to use jQuery1.9.1 in MS visual Studio for developing HTML5 app and thoow me and error on line 1467
    >>body.appendChild( container ).appendChild( div );<<
    variable div has not been created so I had to create this variable first
    var div = document.createElement("div");

    same problem is in minimalistic versiton line 3, col 12368 I had to write
    n=o.createElement("div"),d=o.createElement("div")

    then it works OK

  7. Hmm.. I use jQuery to don’t worry about what browser runs my code. But with 2.0 I have to check the browser version with a

    statement in order to load the appropriate jquery version. Thats weird!

  8. WuShuang on said:

    2.0.0,Hm,Do i really have to judge the Clients’ browser!while testing on IE9,it works,but not my browser IE7 at home.

  9. wanjm on said:

    alert($(“<a href=’#’>”).length);

    the result of the above should be 1; which is good in firefox, but return 0 in IE8 in Jquery1.9;