jQuery Portland Update
With just over a month remaining until the jQuery Foundation heads to the Pacific Northwest for jQuery Portland,
the first U.S. jQuery Conference of 2013, we thought we’d take a moment
to bring you up to speed on what we’ve been preparing for when we set
up camp on Thursday, June 13 and Friday, June 14 at the Oregon Convention Center.
If you’re out for the latest and greatest, you’ll probably want to spend a lot of your time in Track A, where we’ll be covering (amongst other things) how and when to use native HTML5 and CSS3 solutions to problems often solved with jQuery, mobile and A/B testing strategies, new technologies like WebRTC and Web Components, as well as future plans for selectors and indeed, JavaScript itself.
Track B, on the other hand, is a great place to shore up your foundations and learn where to take your next steps as a developer. We’ll be covering a whole lot, including JavaScript fundamentals, code organization, unit testing, single page applications (and the frameworks often used to build them), Node.js, and avoiding the kinds of small mistakes that can turn into big problems later.
Of course, you’re free to go to whichever sessions you like in either track, and there’s a lot more on offer, including a few sessions on how to learn and teach yourself and your colleagues, as well as keynotes from project leads on the latest developments in the jQuery ecosystem. Take a look at the full program to see all the talks and read the full abstracts.
jQuery Foundation members will always be able to buy a ticket for the discounted price of $399, so now’s a great time consider joining the jQuery Foundation to show your support and save a bit as well!
There are still hotel rooms available in our room block at the DoubleTree Portland, but the group rate of $144 per night is only guaranteed for reservations made by May 20th.
If you’re looking to bone up on your jQuery skills before the conference begins, we’ve teamed up with Bocoup to hold beginner and advanced training classes on Wednesday, June 12, for which separate tickets (and similar membership discounts) are available.
There are still ways to get involved in making jQuery Portland even better, so take a look at our prospectus and get in touch if you (or your company) are interested.
What’s In Store
We had such a great response to our Call For Papers that picking “only” 31 talks was a real challenge! Our goal was to put together a program that has something for developers with all levels of experience across the entire spectrum of front-end development, and we’re really proud of the results (and our amazing speakers, most of whom are presenting at their first jQuery conference). We’ve put together a Twitter list of all our speakers if you want to connect with them in advance.If you’re out for the latest and greatest, you’ll probably want to spend a lot of your time in Track A, where we’ll be covering (amongst other things) how and when to use native HTML5 and CSS3 solutions to problems often solved with jQuery, mobile and A/B testing strategies, new technologies like WebRTC and Web Components, as well as future plans for selectors and indeed, JavaScript itself.
Track B, on the other hand, is a great place to shore up your foundations and learn where to take your next steps as a developer. We’ll be covering a whole lot, including JavaScript fundamentals, code organization, unit testing, single page applications (and the frameworks often used to build them), Node.js, and avoiding the kinds of small mistakes that can turn into big problems later.
Of course, you’re free to go to whichever sessions you like in either track, and there’s a lot more on offer, including a few sessions on how to learn and teach yourself and your colleagues, as well as keynotes from project leads on the latest developments in the jQuery ecosystem. Take a look at the full program to see all the talks and read the full abstracts.
Tickets & Accommodations
We’ll be selling regular conference tickets until the end of May, at which point we’ll only be selling “late-bird” tickets, which will cost $50 more, so if you’re planning to join us in Portland, you’ll probably want to act now before the price goes up!jQuery Foundation members will always be able to buy a ticket for the discounted price of $399, so now’s a great time consider joining the jQuery Foundation to show your support and save a bit as well!
There are still hotel rooms available in our room block at the DoubleTree Portland, but the group rate of $144 per night is only guaranteed for reservations made by May 20th.
If you’re looking to bone up on your jQuery skills before the conference begins, we’ve teamed up with Bocoup to hold beginner and advanced training classes on Wednesday, June 12, for which separate tickets (and similar membership discounts) are available.
Sponsors
We’re happy to have the support of the sponsors who have already joined us to help bring jQuery Portland to life, including Splunk, Intel, AppNexus, Automattic, Infragistics, Act-On Software, and Bocoup.There are still ways to get involved in making jQuery Portland even better, so take a look at our prospectus and get in touch if you (or your company) are interested.
See You There?
We’re really excited about the way jQuery Portland is shaping up and believe that there’s a little bit of something for everyone. (Everyone who reads the jQuery blog, that is!) Follow @jqcon on Twitter for more updates, and hopefully, we’ll see you in a month!jQuery 1.10 Beta 1 Released
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
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.
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
- #13752: tabIndex propHook’s default value for non-focusable elements should be -1
- #12072: Remove Firefox deprecated nodeValue, getAttributeNode, specified
Build
- #13776: License comment is breaking the SourceMap
- #13755: Update .jshintrc to match style guide
- #13741: Make wrap*/unwrap methods an optional module
Core
- #13744: Move jQuery.fn.size to deprecated
- #13223: JQUERY 1.9 + CLIENT-SIDE TEMPLATE = “SYNTAX ERROR, UNRECOGNIZED EXPRESSION”
- #12199: $.isPlainObject false positive in IE < 9
Event
- #13554: Move [un]bind & [un]delegate to event-alias
- #13393: .focus() results in ‘Unspecified error.’ IE9, v1.9
Manipulation
- #13722: replaceWith argument handling is inconsistent with other manipulation methods
- #13721: remove(“:nth-child(1)”) works differently than filter(“:nth-child(1)”).remove()
- #13596: .replaceWith should always remove the context set
Selector
Support
jQuery Migrate 1.2.1 Released
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:
A full list of all changes are in the issue tracker.
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:
- http://code.jquery.com/jquery-migrate-1.2.1.js
The uncompressed development version provides compatibility and also generates console warning messages that help you find and fix migration issues. - http://code.jquery.com/jquery-migrate-1.2.1.min.js
The minified version makes jQuery 1.9/2.0 compatible as possible with older versions, so you can run code in production without warning messages.
A full list of all changes are in the issue tracker.
jQuery Migrate 1.2.0 Released
The latest version 1.2 of the jQuery Migrate plugin is here! It can
be used with either jQuery 1.9 or jQuery 2.0 to provide diagnostics and
remedial help for plugins that haven’t been updated since jQuery 1.9
was released earlier this year. Believe me, this plugin can really make
your life easier; if you’ve been afraid of upgrading jQuery, this plugin
can cure that irrational software phobia.
The major change in this version is that we’ve re-closed a cross-site-scripting (XSS) hole that was fixed in jQuery 1.7 and reintroduced by the plugin. Essentially, any use of
You can find this latest version of the jQuery Migrate plugin on jQuery’s CDN:
A full list of all changes are in the issue tracker. Many thanks to Igor Kalashnikov and Max Riviero for their help on this plugin!
The major change in this version is that we’ve re-closed a cross-site-scripting (XSS) hole that was fixed in jQuery 1.7 and reintroduced by the plugin. Essentially, any use of
$("#... ") will now always be interpreted as a selector and not as HTML. This is due to some developers using $(window.location.hash)
and not realizing that an attacker can often control the contents of
the hash on the URL to run code. Always assume that any data you get
from an external source may contain harmful content!You can find this latest version of the jQuery Migrate plugin on jQuery’s CDN:
- http://code.jquery.com/jquery-migrate-1.2.0.js
The uncompressed development version provides compatibility and also generates console warning messages that help you find and fix migration issues. - http://code.jquery.com/jquery-migrate-1.2.0.min.js
The minified version makes jQuery 1.9/2.0 compatible as possible with older versions, so you can run code in production without warning messages.
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. Many thanks to Igor Kalashnikov and Max Riviero for their help on this plugin!
jQuery 2.0 Released
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.
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:
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:
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
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.
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.
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.
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
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:- http://code.jquery.com/jquery-2.0.0.min.js (minified, for production)
- http://code.jquery.com/jquery-2.0.0.js (unminified, for testing)
/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:
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)
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
- #12838: domManip script evaluation implementations with alternate signatures
- #13276: In IE 9/10 $.parseXML() returning document object instead of XMLDOMDocument
- #13292: $.ajax with 1.9.0 doesn’t call anymore success function in case of 204
- #13306: File input added to serialized forms caused a change in behavior and only halfway follows spec
- #13388: Ajax request not returning responseXML
Attributes
Build
- #12656: Make event shorthands an excludable module
- #13316: Check against jquery.min.js with TestSwarm
- #13335: “use strict”; break asp.net ajax postacks in FF
- #13741: Make wrap*/unwrap methods an optional module
- #13744: Move jQuery.fn.size() to deprecated
- #13755: Update .jshintrc to match style guide
- #13759: Better undefined gzip compression
- #13760: getComputedStyle no longer works in node with jsdom
- #13776: License comment is breaking the SourceMap
Core
Css
Deferred
Effects
- #12846: overflow:hidden is not removed when .stop() is called
- #13183: Wrong animation initial value calculation (1.9.0rc1)
- #13483: Issue with stop(true).slideDown() during slideUp()
Event
- #13360: Creating String.prototype.namespace can cause an exception in jQuery.Event
- #11570: Move element cache to the element[expando] to avoid cleanup and reduce code.
- #13143: e.target can be a text node on mousewheel
- #13554: Move [un]bind & [un]delegate to event-alias
Manipulation
- #13232: In 2.0beta1, using html() function on a tbody selector yields insertion of new tbody
- #13233: Unexpected behavior when iterating over and manipulating detached nodes in jquery 1.9
- #13282: QtWebKit — TypeError: ‘[object Object]‘ is not a valid argument for ‘Function.prototype.apply’ (evaluating ‘elem.nodeType’)
- #13596: .replaceWith should always remove the context set
- #13721: remove(“:nth-child(1)”) works differently than filter(“:nth-child(1)”).remove()
- #13722: .replaceWith argument handling is inconsistent with other manipulation methods
- #13779: .remove() changed in beta3 – now remove nodes in reverse doc order
Selector
- #13434: Create querySelectorAll/matchesSelector selector option
- #13331: jQuery.fn.add returns incorrect order in Chrome and Safari
- #13378: ie8 & ie9 iframe – .filter(“:focus”) – document.activeElement returns unspecified error.
- #13420: jQuery 1.9.1 fails to filter SVG parent nodes by class name when using .parent() and .closest()
- #13499: Descendant selector fails when searched ID doesn’t exists but NAME does (IE7 only)
- #13505: jquery#add: seems to get items in collection out of order on larger lists
Support
- #10814: make support as lazy as possible with closure in mind
- #12040: Test against Content Security Policy (CSP)
- #13089: support adds zoom style to body in Chrome/Safari
- #13743: Remove jQuery.support.boxModel
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
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.
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:
Node.js compatibility. If the jquery.js file is included in Node via
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
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.
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:
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
- #13388: Ajax request not returning responseXML
- #13276: In IE 9/10 $.parseXML() returning document object instead of XMLDOMDocument
- #13292: $.ajax with 1.9.0 doesn’t call anymore success function in case of 204
- #13306: File input added to serialized forms caused a change in behavior and only halfway follows spec
Build
- #12656: Make event shorthands an excludable module
- #13316: Check against jquery.min.js with TestSwarm
- #13335: “use strict”; break asp.net ajax postacks in FF
- #13744: Move jQuery.fn.size() to deprecated
Core
Css
Deferred
Effects
- #12846: overflow:hidden is not removed when .stop() is called
- #13183: Wrong animation initial value calculation (1.9.0rc1)
Event
- #13360: Creating String.prototype.namespace can cause an exception in jQuery.Event
- #11570: Move element cache to the element[expando] to avoid cleanup and reduce code.
- #13143: e.target can be a text node on mousewheel
- #13554: Move [un]bind & [un]delegate to event-alias
Manipulation
- #13232: In 2.0beta1, using html() function on a tbody selector yields insertion of new tbody
- #13233: Unexpected behavior when iterating over and manipulating detached nodes in jquery 1.9
- #13282: QtWebKit — TypeError: ‘[object Object]‘ is not a valid argument for ‘Function.prototype.apply’ (evaluating ‘elem.nodeType’)
- #13721: remove(“:nth-child(1)”) works differently than filter(“:nth-child(1)”).remove()
- #13741: Make wrap*/unwrap methods an optional module
Selector
- #13434: Create querySelectorAll/matchesSelector selector option
- #13331: jQuery.fn.add returns incorrect order in Chrome and Safari
- #13378: ie8 & ie9 iframe – .filter(“:focus”) – document.activeElement returns unspecified error.
- #13420: jQuery 1.9.1 fails to filter SVG parent nodes by class name when using .parent() and .closest()
- #13499: Descendant selector fails when searched ID doesn’t exists but NAME does (IE7 only)
- #13505: jquery#add: seems to get items in collection out of order on larger lists
Support
- #10814: make support as lazy as possible with closure in mind
- #12040: Test against Content Security Policy (CSP)
- #13089: support adds zoom style to body in Chrome/Safari
- #13743: Remove jQuery.support.boxModel
Traversing
Join the jQuery Foundation!
This month, the jQuery Foundation is celebrating our first year
serving the web. As a not-for-profit trade association, we’re here to
connect every business and individual that cares about jQuery and help
them work together to ensure its continued success. Writing code and
documentation, hosting trainings and conferences, and collaborating in
the standards process. This makes jQuery better and it makes web
development better.
jQuery is more than just a JavaScript library, it is a community and an integral part of the web developer’s toolset today. The jQuery Foundation exists in part to ensure this community continues to grow and thrive. Throughout this first year, we’ve invited companies to join the jQuery Foundation in support of this mission, and 14 companies have joined at various levels. We appreciate their commitment to jQuery and their support of its mission to support the libraries, their documentation, and our web standards advocacy.
Join Now

jQuery is more than just a JavaScript library, it is a community and an integral part of the web developer’s toolset today. The jQuery Foundation exists in part to ensure this community continues to grow and thrive. Throughout this first year, we’ve invited companies to join the jQuery Foundation in support of this mission, and 14 companies have joined at various levels. We appreciate their commitment to jQuery and their support of its mission to support the libraries, their documentation, and our web standards advocacy.
Individual Membership Program
You can now join the jQuery Foundation as an individual member. Just as with companies, we have created various levels based on contributions. The benefits include buttons, stickers, badges, banners, discounted conference tickets, discounts from member companies, invites to members-only parties at conferences, and recognition on our member listing. We’ve prepared a thank you gift for each level to provide an extra incentive for folks to make an annual dues commitment.Join Now
Badge of Honor
We’ve prepared badges and banners for our members to sport on their website, or their choice of social network. Huge thanks to Isaac Durazo (@isaacdm) from Bocoup for drawing these up.What if I Can’t Contribute On A Recurring Basis?
The individual membership program is designed for those who want to contribute a set amount of dues to jQuery regularly, as well as enjoy the benefits of that membership. If that’s not what you’re looking for, we always welcome one-time donations (from companies or individuals) via PayPal and check at jquery.org/donateMoving Forward
The jQuery team, together with the support of member companies have achieved tremendous success in Year One. We have tripled the number of conferences, gathering with communities around the globe (Asia, Europe, Canada, and UK). We have redesigned (nearly) all our web sites and made contributing to them as easy as contributing to code. We continue to wrangle bug queues and deliver smaller, faster, better tested, and more robust code. We have 4 official representatives at the W3C and ECMA TC39. We’ve managed to do this all in our first year, and we’re very much looking forward to what we can accomplish in the future. Join us!jQuery 2.0 Beta 2 Released
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:
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.
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
Minimal selector engine: Richard Gibson created a small wrapper around the browser’s native
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
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“.
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:
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
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/xhrThe 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
- #13388: Ajax request not returning responseXML
- #13276: In IE 9/10 $.parseXML() returning document object instead of XMLDOMDocument
- #13292: $.ajax with 1.9.0 doesn’t call anymore success function in case of 204
- #13306: File input added to serialized forms caused a change in behavior and only halfway follows spec
Build
- #12656: Make event shorthands an excludable module
- #13316: Check against jquery.min.js with TestSwarm
- #13335: “use strict”; break asp.net ajax postacks in FF
Core
Css
Deferred
Effects
- #12846: overflow:hidden is not removed when .stop() is called
- #13183: Wrong animation initial value calculation (1.9.0rc1)
Event
- #13143: e.target can be a text node on mousewheel
- #13360: Creating String.prototype.namespace can cause an exception in jQuery.Event
Manipulation
- #13232: In 2.0beta1, using html() function on a tbody selector yields insertion of new tbody
- #13233: Unexpected behavior when iterating over and manipulating detached nodes in jquery 1.9
- #13282: QtWebKit — TypeError: ‘[object Object]‘ is not a valid argument for ‘Function.prototype.apply’ (evaluating ‘elem.nodeType’)
Selector
- #13434: Create querySelectorAll/matchesSelector selector option
- #13331: jQuery.fn.add returns incorrect order in Chrome and Safari
- #13420: jQuery 1.9.1 fails to filter SVG parent nodes by class name when using .parent() and .closest()
- #13499: Descendant selector fails when searched ID doesn’t exists but NAME does (IE7 only)
- #13505: jquery#add: seems to get items in collection out of order on larger lists
Support
- #10814: make support as lazy as possible with closure in mind
- #12040: Test against Content Security Policy (CSP)
- #13089: support adds zoom style to body in Chrome/Safari
Traversing
Try jQuery Interactive Course
Reading documentation, blogs, and forums are useful ways to learn
how to use jQuery, but there is ultimately no substitute for actually
writing code. That’s why we’ve been collaborating with Code School to create Try jQuery, a brand new introductory course with video and interactive examples to make it easier to take those first steps. 
Try jQuery walks you through the most fundamental building blocks of jQuery, from actually getting the library into your page to selecting, manipulating, and creating DOM elements, and reacting to user input. The entire experience takes place in the browser, so there’s live feedback on your code as you complete the exercises and learn the basics.
The course takes about three hours to complete, but you can take it all at your own pace. Best of all, Try jQuery is completely free! If you’d like to save your progress and earn badges, you can sign up with Code School.
We’re really glad to be able to provide new jQuery users with an easy way to get started. So if you’re looking to understand how to use jQuery — or know someone else who is — we hope Try jQuery helps get you in gear!
Should you encounter any trouble with the course, please contact Code School. If you’d like want to provide feedback on Try jQuery, you can get in touch with us at content at jquery dot com, and you can also reach out to Code School.
Try jQuery walks you through the most fundamental building blocks of jQuery, from actually getting the library into your page to selecting, manipulating, and creating DOM elements, and reacting to user input. The entire experience takes place in the browser, so there’s live feedback on your code as you complete the exercises and learn the basics.
The course takes about three hours to complete, but you can take it all at your own pace. Best of all, Try jQuery is completely free! If you’d like to save your progress and earn badges, you can sign up with Code School.
We’re really glad to be able to provide new jQuery users with an easy way to get started. So if you’re looking to understand how to use jQuery — or know someone else who is — we hope Try jQuery helps get you in gear!
Should you encounter any trouble with the course, please contact Code School. If you’d like want to provide feedback on Try jQuery, you can get in touch with us at content at jquery dot com, and you can also reach out to Code School.
jQuery Migrate 1.1.1 Released
To magnify your jQuery migration pleasure, version 1.1.1 of the
jQuery Migrate plugin is now available. This plugin can greatly simplify
the process of moving older jQuery code to version 1.9.0 or higher of
jQuery by identifying deprecated features. It can also restore those
features so that older code can run without needing any changes at all.
We strongly recommend that you use this plugin in your initial jQuery
1.9 upgrade — make it easy on yourself, that’s why we wrote this plugin!
If you haven’t yet read about jQuery 1.9 and the Migrate plugin, we recommend that you check out the jQuery 1.9 upgrade guide and the original jQuery 1.9 blog post.
Using the plugin is easy; just include it immediately after the script tag for jQuery, for example.
For more information, see the jQuery Migrate documentation.
Here are the items we’ve polished for this version; you can see the complete list at Github. Many thanks to jQuery team member Richard Gibson for his help on this release.
If you haven’t yet read about jQuery 1.9 and the Migrate plugin, we recommend that you check out the jQuery 1.9 upgrade guide and the original jQuery 1.9 blog post.
Using the plugin is easy; just include it immediately after the script tag for jQuery, for example.
For more information, see the jQuery Migrate documentation.
Here are the items we’ve polished for this version; you can see the complete list at Github. Many thanks to jQuery team member Richard Gibson for his help on this release.
- Remove “use strict”: Not all code is compatible with
JavaScript’s “use strict” mode, so we’ve removed this restriction for
the same reason we did in jQuery 1.9.1. This fixes some issues with
diagnostic software that uses
arguments.callerand with form processing in ASP.NET. - $.parseJSON in $.ajax: In 1.9 when an
$.ajax()call specifies adataType: "json"the returned value MUST be valid JSON. Older versions treated an empty string as a success even though it was not valid JSON. The Migrate plugin will now warn about this, treat the result as success and return null as older versions did. - Preserve custom $.browser: If the
$.browserobject has been changed or augmented by code that loaded before jQuery Migrate, those changes will now be preserved. However, we still advise the Migrate plugin be loaded immediately after the jQuery core file.
Comments