Put down the egg nog and get ready to test. The latest (and most likely last) betas of jQuery 1.11 and 2.1 are now submitted for your inspection and approval. You can get them here:
We know you’ve got a few days off over the holidays, so give us a big present and help us test! Don’t forget that jQuery 1.x supports IE 6/7/8 and jQuery 2.x does not. In other ways the two versions should echo the same feature sets, so it should be possible to switch between the two without too much trouble.
Asynchronous Module Definition (AMD): jQuery components are now built 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. If you want to know more, see 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. If you want to install the beta, you can use
npm install email@example.com.
Still to come: No global for the npm version: After polling potential npm/browserify users, we have decided to keep the global namespace clean and not to expose the jQuery global in these situations. Instead, you can do it yourself with
window.jQuery = window.$ = require("jquery"). That ticket didn’t make it into the beta, but you should assume you’ll need to set it yourself.
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. So don’t be a chicken, test this beta!
Twas the week before Christmas, when all through the house
Not a creature was stirring, not even a mouse.
The code was checked by the team with such care,
In hopes that a new beta soon would be there.
Contributors nestled all snug in their beds,
While visions of working code danced in their heads.
The pull requests landed, commits all now pushed,
GitHub issues closed, the whole team is bushed.
When on the CDN there arose such a clatter,
I sprang from the bed to see what was the matter.
Away to the laptop I flew like a flash,
Popped open a window and started up bash.
My wondering eyes barely processed the data,
It’s release 3 of jQuery 1.11 and 2.1 beta!
And then, on the roof, I heard at the ready,
The loading of code that was solid and steady.
As I drew in my head, and was turning around,
Down the chimney St. jQuery came with a bound.
“I’m needing your help,” St. jQuery exclaimed,
“If we ship code with bugs I know I’ll be flamed!”
“Just run this beta with your best sites and apps,
so we know if our changes avoided the traps.”
More rapid than eagles contributors came,
He whistled, and shouted, and thanked them by name!
“Now Timmy! now, Richard! now Michał and John!
On Oleg! On Chris! On Jakob and Hong!
To the top of the list, your reward won’t be small!
Now cache away! Cache away! Cache away all!”
He sprang to his sleigh, to his team gave a whistle,
And away they all flew like the down of a thistle.
But I heard him exclaim, as he drove out of sight,
“Happy beta to all, and to all a good-night!”
Common to both jQuery 1.11 Beta 3 and jQuery 2.1 Beta 3
- #14036: ajaxLocation Includes HTTP Basic Authentication Info
- #14356: Remove string indexing used in AJAX
- #14379: Issue with xhr.js
- #12757: Enforce style guide via build process
- #13983: Switch to //# for sourcemap directives
- #14016: Include a build option for customizing exports
- #14113: AMD-ify jQuery source
- #14118: Use bower to include Sizzle and QUnit (remove submodules)
- #14163: Make Deferreds/Callbacks/.ready() optional modules
- #14415: Remove sourcemap comment
- #14450: Remove CommonJS+AMD syntax from source
- #14451: Add bower and npm registrations to release script
- #14504: Build: Upgrade to grunt-contrib-jshint 0.7.1 and squash subtasks
- #14615: Manage bower dependencies with grunt-bowercopy
- #14164: Reduce forced layout reflows in init or methods
- #14492: parseJSON incorrectly accepts comma expressions
- #14548: npm jQuery does not have a main module
- #14549: npm jQuery does not expose the jQuery function, but instead a wierd factory
- #14150: IE9-10 curCSS => “Interface not supported” in for popups (and probably frames)
- #14394: style=”x: y !important;” doesn’t get changed when calling el.css(x, z) in Chrome and Safari but it works in Firefox
- #14101: JQUERY 1.10’S .DATA() RESULT DIFFERS FROM 1.8 WHEN ATTEMPTING TO GET DATA FROM A NON-EXISTENT OBJECT.
- #14459: data-* attribute parsing bypasses jQuery.parseJSON (inconsistent with 1.x)
- #13993: .triggerHandler doesn’t return value from handler for DOM0 events
- #14180: focusin/out special events don’t work cross-window
- #14282: Don’t call getPreventDefault() if there is a defaultPrevented property
- #14142: Wrong number of elements returned in XML document with numeric IDs in Safari
- #14351: Exception thrown when running `find` in a non-attached DOM node
- #14381: .add() throws “no such interface” in IE when adding nodes from another window
- #14535: Selection fails in IE11 when the last context is a no-longer-present iframe document
- #14584: Attribute Ends With case-insensitive in some IE8
- #10814: make support as lazy as possible with closure in mind
- #14084: elem.css(‘width’) provides incorrect output with `box-sizing: border-box` if run before document ready
- #14401: Error when loading a page with application/xhtml+xml
- #14496: jQuery 2.1.0-beta1 fails to initialize in a XHTML page
jQuery 1.11 Beta 3
- #14074: jQuery 1 throws an error on window ready when there is an element in the DOM with the id ‘nodeName’