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
- #13922: HEAD responses with application/json results parseerror
- #13388: Ajax request not returning responseXML
Attributes
- #13835: hasClass fails when class contains form feed
- #13809: Closure Compiler/YUI Compressor fail
- #13752: tabIndex propHook’s default value for non-focusable elements should be -1
- #13514: Setting “wrong” value of select-element using .val() is inconsistent in IE9 compared to other browsers
- #12072: Remove Firefox deprecated nodeValue, getAttributeNode, specified
Build
- #13741: Make wrap*/unwrap methods an optional module
- #13755: Update .jshintrc to match style guide
- #13776: License comment is breaking the SourceMap
- #13793: SourceMap on Google is broken
Core
- #12199: $.isPlainObject false positive in IE < 9
- #13223: JQUERY 1.9 + CLIENT-SIDE TEMPLATE = “SYNTAX ERROR, UNRECOGNIZED EXPRESSION”
- #13744: Move jQuery.fn.size to deprecated
Event
- #13554: Move [un]bind & [un]delegate to event-alias
- #13393: .focus() results in ‘Unspecified error.’ IE9, v1.9
Manipulation
- #13401: .replaceWith( “” ) with empty string not working
- #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
Selector
- #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()
- #13505: jquery#add: seems to get items in collection out of order on larger lists
- #13777: IE7 jQuery attribute selector not working properly
- #13894: .children does not return direct child, but .find does [Firefox only]
Support
- #12040: Test against Content Security Policy (CSP)
- #13743: Remove jQuery.support.boxModel
- #13754: jQuery doesn’t work in a non-HTML document in UAs that have innerHTML on Element and create non-HTML elements via createElement
Traversing
- #13265: parent method fails with text nodes in IE10
- #13332: .closest(“*”) yields input even for non-element nodes
jQuery 2.0.1 Changelog
Ajax
Attributes
Data
- #13815: Setting data property with data(object) produces different results than data(key, value)
- #13850: .data() and removeData() doesn’t work correctly with hyphenated property
Effects
Event
- #13554: Move [un]bind & [un]delegate to event-alias
- #13255: jQuery 2.0b1 and Cordova 2.3.0 cause “Uncaught TypeError: Cannot read property ‘nodeType’ of null”.