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

Live From Portland, It’s jQuery!

Posted on by

Later this week, jQuery Conference is returning stateside for the first time in 2013, and we’re excited to announce another first: inspired by the mighty Willamette River running through Portland, we’re bringing you our first-ever live stream! No matter where you are in the world, you’ll be able to take in both days of #jqcon and the pre-conference Bocoup training. Doing a live stream comes with its own challenges and complexities, so we are selling tickets for each stream, and wanted to take a moment to walk you through your options.

Conference Live Stream

A ticket for the conference live stream costs $149, which entitles you to both tracks on June 13th and 14th. However, jQuery Foundation members get free tickets to the live stream. Membership in the foundation is as little as $100 annually (and you get a t-shirt!), so now’s a great time to join the foundation, show your support for jQuery and learn a whole lot! If a bunch of folks at your company would all like to attend, we’re also selling Group tickets for $749.

Training Live Stream

In addition, live streaming tickets are available for the one-day Bocoup trainings on June 12th for $299, with an additional $50 discount for jQuery Foundation members. You can choose to attend either the Advanced jQuery or Front-end Fundamentals classes. Group tickets are available for $999.

How It Works

Once you buy your live stream tickets, the morning of each event you’ll receive an e-mail with your unique link to the stream. Click on it! (Or simulate a mouse click using the whole document.createEvent song and dance, if you’re so inclined.)

Odds and Ends

We still have a few late-bird tickets remaining, and we’ve just announced we’ll be hosting a party on June 13th thanks to our friends at Jive Software, so if you’re still on the fence, hopefully you just fell off (gently)! Whether you’re joining us in person or on the stream, we’re looking forward to three days of fun and learning, and hope you are too.

As always, follow @jqcon for detailed conference updates, and join us in the #jqcon channel on Freenode to chat with fellow attendees around the room, and around the world.

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 Portland Update

Posted on by
jQuery Conference Portland logo

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.

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 27th.

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

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 Migrate 1.2.0 Released

Posted on by

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 $("#... <tag>") 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:

Using the plugin is as easy as including it right after the version of jQuery you are using, for example:

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

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

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