- news (348)
- links (346)
- jQuery Plugins (62)
- jQuery Code Snippets (34)
- jQuery and JavaScript (21)
- plugins (17)
- jQuery News (17)
- Uncategorized (16)
- Media (13)
- jQuery Mobile (11)
- jQuery and CSS (10)
- jQuery Utilities (9)
- jQuery and Ajax (9)
- Random jQuery Stuff (9)
- jQuery Functions (8)
- jQuery Articles (8)
- images (7)
- jQuery (7)
- jQuery Tutorials (7)
- Jquery Editors (6)
- jQuery and HTML (6)
- jQuery and WordPress (6)
- Javascript Libraries (6)
- jQuery Testing (6)
- jQuery Events (6)
- Supersized - Full Screen Background/Slideshow jQuery Plugin
- Supersized - Full Screen Background Slideshow jQuery Plugin
- jQuery content slider carousel image slideshow | bxSlider
- qTip2 - Pretty powerful tooltips
- 30 Days to Learn jQuery | Tuts+ Premium | The best way to learn creative and technical skills.
- turn.js - The page flip effect for HTML5
- Web Design Shock
- Underscore.js
- SimpleModal / Eric Martin / ericmmartin.com
- Highslide JS - JavaScript thumbnail viewer
- Cookie Law Compliance Solution | Cookie Control by Civic
- Page Loading Effects with jQuery
- Estro - jQuery Ken Burns & swipe effect slider Preview - CodeCanyon
- Make Your Own Bookmarklets With jQuery - Smashing Coding
- jQuery Slideshow & Content Slider Plugin | SlideDeck
- ALAJAX - jQuery AJAX Forms plugin
- jQueryをロードする際のナイス!と思った書き方
- Everything You Need to Build A CSS3 Responsive Fluid Layout | Queness
- How to Code a jQuery Rolodex-Style Countdown Ticker - DesignM.ag
- jQuery/JavaScript Tools and Plugins Worth Checking Out | Impressive Webs
- jqBootstapValidation by ReactiveRaven
- Kendo Blog Posts > Hello Services / WebAPI, REST, JSON and AJAX
- 翻訳:HTML5モバイルWebフレームワークの比較 - きしだのはてな
- [JS]異なる高さのdiv要素を揃えるだけでなく、均等割付やグリッドに揃えることもできるスクリプト -jQuery.grrrid.js | コリス
- [5]テーブル、チャート、コード表示プラグインを活用する - みてわかる!jQuery入門:ITpro
Just Added: Training at SF jQuery Conference!
In response to the flood of requests and emails, and our original promise to work on this, we’ve got an announcement: we’ve added a single day Beginner/Intermediate training right before the San Francisco jQuery Conference :)
Tickets are on sale now (left side, below the fold). The training will be provided by our friends at Bocoup, and hosted by the ever-generous folks at Microsoft. Here’s a snippet of what Trainers Ben Alman and Rebecca Murphey will be covering:
At Bocoup’s intermediate one-day jQuery training, you’ll work with jQuery veterans to build a foundation that will make you a stronger developer and get you prepared for all the great talks that you’ll see over the next two days. You’ll even learn the basics of creating your own jQuery plugin. Topics that will be covered include:
- The jQuery() function
- Selecting & Traversing
- Manipulating the DOM
- Making stuff happen with Events
- AJAX
- Enhancing with Effects
- Extending jQuery with Plugins
- jQuery UI
- jQuery Mobile
To note: the training and conference are both in San Francisco, but take place in different locations. The training is in the heart of San Fran on Market Street, and the conference is about five to ten minutes from there, on the UCSF Mission Bay campus. Please also note that the conference and training require separate admission tickets, so make sure you’ve purchased both if you’d like to attend both.
We’re still working on the possibility of adding an Advanced training, but thus far have had mostly requests for beginner materials. So here that is :)
Hope you’ve all bought your tickets to the conference; can’t wait to see you there!
Getting Touchy About Patents
Touch events have become a hot topic for web developers as more and more companies move into the mobile space. Most of us know that touch events support single and multi-touch tracking. Some of us know the trickiness of working with touch and mouse at the same time. Fewer know that there are multiple touch event models, and even fewer have tried to support multiple models at the same time. I’d like to talk about where we are today, how we got here, and the potential problems we may face in the future.
A Brief History
Back in 2007, Apple introduced the iPhone, and with it came touch events. Neil Roberts sums up the Apple implementation well in a SitePen article: “Though at first the APIs seem a little sketchy, once you’ve learned them you should be able to do amazing things in your application.” Sure enough, we’ve seen plenty of amazing things, without too much complaint of the “sketchy” API. This model was later implemented by Android, Nokia, RIM, Opera, and others. Apple’s implementation is still only available in their private fork of WebKit; it wasn’t until the end of 2009 that touch events first appeared in the main WebKit repo, coming from the Android implementation.
Also in 2009, the W3C started discussing a unified pointer model for DOM Level 3 Events. The idea was that touch (including multi-touch), pen/stylus, and mouse events would be coalesced into a single model, making it easy to support all pointer types at once. However, this was abandoned because the goal at the time was to keep the spec as small as possible in order to become a recommendation faster.
Another two years later (March 2011), Mozilla released Firefox 4, featuring their own flavor of touch events. The Mozilla model is much closer to the mouse event model and the abandoned W3C model in that the event objects are flat; properties such as `event.pageX` exist and there is no touch list. If you want to track multiple touches, you can do so via the event’s `streamId`. Mozilla later deprecated this implementation in favor of an emerging W3C spec based on Apple’s model.
In January 2011, the W3C started drafting a Touch Events spec based on the WebKit implementation. A few months later, it became a Working Draft, and in December it became a Candidate Recommendation. The next month, a Patent Advisory Group (PAG) was formed in order to investigate patents disclosed by Apple. Apple’s absence from the Touch Events Working Group (WG) and their patent disclosure has caused the W3C to stop work on the spec and they do not plan to continue until the PAG has concluded and/or makes a recommendation to the WG. As of this writing, the PAG has not made a decision about the impact of the patents, but the group’s goal is to reach a speedy conclusion.
Meanwhile, Microsoft took a different approach to touch and has implemented their own pointer events in IE10 with the MSPointerEvent object. The MSPointerEvent object is similar to the original Mozilla implementation, in that the event objects are flat and contain a `pointerId` property. However, there are some important differences between MSPointer and all of the other models, which are touch-specific.
Note: The above is just a brief history of touch events on the Web; if you’re interested in the history of touch interfaces, you might want to check out Bill Buxton’s Multi-Touch Systems that I Have Known and Loved.
Pointer Events vs. Touch Events
As mentioned above, generic pointer events such as the original W3C idea or MSPointer, have the benefit of supporting multiple pointer devices. In fact, with a Samsung tablet running Windows 8, mouse, pen, and fingers are all normalized to MSPointer; you can even use the `pointerType` property to determine which type of pointer is being used. In addition to supporting all current pointer devices, MSPointer is designed in such a way that future devices can easily be added, and existing code will automatically support the new device. Even better, MSPointer event objects have the same structure as other events, reducing the learning curve compared to the conglomerate of TouchEvent, TouchList, and Touch.
Another big difference between MSPointer and Touch is that MSPointer has support for hovering (over and out events). While most touch devices have a hardware limitation that doesn’t allow for hovering, Sony recently announced the Xperia sola with “magical floating touch technology.” This brings up an important issue: Touch Events were designed based on a specific device for a specific type of input. Pointer Events represent a completely different approach to input on the Web. While we’ve already covered how this impacts developers, it’s interesting to consider the impact on hardware manufacturers. In order for Apple to succeed with touch interfaces, they had to create a new event model. Innovation for new form factors and new input methods will either be stifled by the existing standards or will require a new set of APIs, following in Apple’s footsteps with the iPhone and Touch Events. Pointer Events provides a clean solution not only for developers, but for hardware manufacturers as well. It’s conceivable that in a few years developers could use Pointer Events as the only event model for pointers, leaving Mouse Events as a thing of the past.
A Splintered Future
Although the W3C is still planning to move forward with the Touch Events spec (pending a recommendation from the PAG), the future is unclear. Even if the PAG determines that Apple’s patents don’t apply and the spec becomes a W3C Recommendation, it’s not clear that Microsoft would implement such a model given the need for a multi-input event system in Windows. If the W3C were to change directions and start a Pointer Events spec, it’s not clear that Apple, or more broadly WebKit, would implement the new event model. It’s entirely possible that even with a W3C Recommendation, we’ll be stuck for years without a consistent event model across browsers and devices.
Regardless of which model the W3C chooses to pursue, jQuery is dedicated to filling in the gaps, just like we do for other events such as submit and change. We think the pointer event model is easier to use and more future-proof, and we hope that it can be standardized, even if Touch Events are standardized as well. However, we are only interested in normalizing to a W3C Recommendation, and will not provide custom pointer events if there is no official W3C specification. We’re working with the W3C and Microsoft to try to find the best way forward for our users and the Open Web.
Call to Action: Microsoft to Submit Pointer Event Proposal
We would like to publicly call upon Microsoft to submit a proposal to the W3C for Pointer Events. The Touch Events Working Group, and by extension various browser vendors, have stated interest in pointer events. The most effective way to proceed would be for Microsoft to officially submit a proposal to the W3C.
Call to Action: Community to Experiment with Both Event Models
We would also encourage the community to experiment with Touch and MSPointer. Play with the APIs, build apps, and provide feedback. If you’re interested in this, but don’t have the necessary hardware, consider pairing up with one or more local developers who do. While there are a lot of developers building on top of Touch, there are very few people building on top of MSPointer, and even fewer publicly comparing them. We encourage you to send your feedback directly to the W3C public-webevents mailing list, but feel free to leave feedback here and we will pass it along.
Call to Action: Submit Prior Art
If you know of any prior art for multi-touch/touch lists, even outside of the Web, please get in touch with the W3C. This includes programming models and APIs, especially those using events. This will help the Patent Advisory Group come to a conclusion sooner. Again, if you’d rather leave comments here, we will pass them along.
jQuery 1.7.2 Released
jQuery 1.7.2 is looking good! The release candidate went smoothly so we’ve made only one small change and are releasing it to your eager hands today. You can get the oven-fresh code from the jQuery CDN now, with Google and Microsoft CDNs soon to follow:
- http://code.jquery.com/jquery-1.7.2.min.js (minified, production)
- http://code.jquery.com/jquery-1.7.2.js (unminified, debug)
Note: If you’re using jQuery Mobile, please use jQuery 1.7.2 only with jQuery Mobile 1.1. For previous versions of jQuery Mobile, stay with jQuery core 1.7.1 or earlier.
You can use the bug tracker to report bugs; be sure to create a test case on jsFiddle so we can figure it out easily. If you’re not sure it’s a bug, ask on our forum or on StackOverflow. Please don’t use the blog comments below to report bugs.
As always, this release wouldn’t have been possible without the hard work of many people. First, the jQuery Core Team: gnarf, jaubourg, mikesherov, rwldrn, and timmywil. The support of the jQuery UI, Mobile, and Infrastructure teams was greatly appreciated as well, especially danheberden’s valiant struggle against Trac.
Community members like adebree, caii, cmc3cn, KYSergey, mathiasbynens, miskith, MrMamen, Orkel, pasky, SineSwiper, tavelli, and vlazar pitched in by reporting, verifying, and fixing bugs. Special jQuery Gold Leaf Cluster thanks to gibson042 and sindresorhus for their work in making 1.7.2 a great release. Don’t let these people have all the fun! If you’d like to contribute to the web’s most popular Javascript library, hop onto #jquery-dev on IRC or the Developing jQuery Core section on our forum and say hello!
Many thanks to Louis-Rémi Babé, who submitted a patch to fix a regression with negative margin animations a mere 30 minutes before the release!
jQuery 1.7.2 Change Log
Here’s the change log of the 1.7.2 release.
Ajax
- #4624: Charset in default ajaxSettings.contentType
- #10978: jQuery.param() should allow non-native constructed objects as property values
- #11264: evalScript() uses defaults set by ajaxSetup()
- #11426: jQuery.ajax() always fails when requesting JPG images in IE
Attributes
- #5571: Allow chaining when passing undefined to any setter in jQuery
- #10828: attr(“coords”) returns undefined in IE7
- #10870: Incorrect behaviour of $.removeAttr(“selected”)
- #11316: Consider looking through valHooks by element type first, then by nodeName instead of the other way around
Build
- #10692: Configure the jshint options to more accurately match the style guide
- #10693: generalize the “test something in an iframe” code in unit tests
- #10901: have unit tests fail if the tester is running from file:// or doesn’t have PHP
- #10902: ability to test a built version of jQuery in unit tests
- #10931: Unit tests shouldn’t require internet access
Core
- #10466: jQuery.param() mistakes wrapped primitives for deep objects
Css
- #10639: outerWidth(true) and css(‘margin’) returning % instead of px in Webkit
- #10754: have jQuery.swap return the return of the callback instead of just executing it
- #10782: Incorrect calculating width
- #10796: Bug in IE7 with $(‘#el’).css.(‘background-position’)
- #10858: css.js regular expressions are incomplete
- #11119: The curCSS function only need 2 arguments
Data
- #11309: hexadecimal-formatted data-* attributes parsed incorrectly
Deferred
- #11306: calling .disable() or .lock() on a $.Callbacks object breaks its fired() status
Dimensions
- #3838: $(document).height() incorrect in IE6
Effects
- #8498: Animate Hooks
- #10006: method show is not working as expected in all browsers when called for document fragment
- #10848: Animation toggling loses state tracking in certain atomic edge cases
- #11415: Silently ignore negative CSS values where they are illegal
- #11469: Negative margin in animations (.animate)
Event
- #8165: .live(‘click’, handler) fires on disabled buttons with child elements in Chrome
- #10819: Eliminate “this.on.call(this, “
- #10878: $(“select”).live(“change”, function(){ …broken in IE8 in jQuery 1.7
- #10961: Error in XRegExp using jQuery 1.7.1 in IE6-9
- #10970: The .on() selector parameter doesn’t work with :not(:first) selector
- #10984: Cannot off() custom events ($.event.special)
- #11021: Hover hack mangles a namespace named “hover”
- #11076: .clone(true) loses delegation filters
- #11130: jQuery.fn.on: binding map with null selector ignores data
- #11145: $(document).on() not working with name=”disabled”
Manipulation
- #9427: Passing undefined to .text() does not trigger setter
- #10753: inline the evalScript function in manipulation.js as it’s only used once
- #10864: text() method on a document fragment always returns the empty string
- #11055: Update HTML5 Shim elements list to support latest html5shiv
- #11217: Append problem with webkit
- #11291: Cloning XMLDoc’s with HTML5 nodeName’s breaks on IE
- #11323: script tags with type=”text/ecmascript” leak into the DOM
- #11356: safeFragment memory leak
Misc
- #10952: .fired() doesn’t work on Callbacks object when it is flagged with “once”
- #11257: Wrong path to source files in test suite if PHP missing
Queue
- #10967: .promise() does not attach methods onto target
Support
- #7986: Bug in $.support.boxModel if page has DIV-element CSS
- #11048: Support Tests affect layout for positioned elements in IE6-9
- #11337: Bug in $.support.reliableMarginRight
Traversing
- #11370: $(‘<div>’).siblings() throws exception
jQuery 1.7.2 RC1 Released
jQuery 1.7.2 will be arriving soon! To make sure that we’ve fixed the bugs voted “Most Likely to Annoy” without introducing any new bugs, we need your help in testing this release candidate. You can get the code from the jQuery CDN:
It will only take a few minutes to drop in this latest file and test it with your code. If you’ve got a lot of pages, the list of fixed bugs below may be a helpful guide for determining what to test. And of course, if you reported a bug or were affected by one listed below, please re-test to be sure we fixed it for good. We’ve tested it internally against the current builds of jQuery UI and jQuery Mobile. There is one compatibility issue with jQuery Mobile 1.1 RC1 that has already been fixed and will be addressed by their next release.
Looking for an even easier way to test your web site with the latest jQuery? On Windows you can use the excellent Fiddler tool and create an AutoResponder rule to point your HTTP script requests for jQuery to the file location above. Then you are testing your live web site with the latest jQuery on your PC, without having to edit any files at all! If you know of similar tools for other platforms, leave a message in the comments below.
If you are particularly interested in IE6 support, please help us out. We are having sporadic trouble running the unit tests in IE6. It hasn’t been possible for us to determine the cause of these problems, but the problem doesn’t happen consistently and the sheer size of our test suite may just be overwhelming a browser that is more than a decade old. If you observe any reproducible failures in real code, please let us know and try to provide the smallest possible test case.
You can use the bug tracker to report bugs; be sure to create a test case on jsFiddle so we can figure it out easily. If you’re not sure it’s a bug, ask on our forum or on StackOverflow. Please don’t use the blog comments below to report bugs.
jQuery 1.7.2rc1 Change Log
Here’s the current change log of the 1.7.2rc1 release.
Ajax
- #4624: Charset in default ajaxSettings.contentType
- #10978: jQuery.param() should allow non-native constructed objects as property values
- #11264: evalScript() uses defaults set by ajaxSetup()
- #11426: jQuery.ajax() always fails when requesting JPG images in IE
Attributes
- #5571: Allow chaining when passing undefined to any setter in jQuery
- #10828: attr(“coords”) returns undefined in IE7
- #10870: Incorrect behaviour of $.removeAttr(“selected”)
- #11316: Consider looking through valHooks by element type first, then by nodeName instead of the other way around
Build
- #10692: Configure the jshint options to more accurately match the style guide
- #10693: generalize the “test something in an iframe” code in unit tests
- #10901: have unit tests fail if the tester is running from file:// or doesn’t have PHP
- #10902: ability to test a built version of jQuery in unit tests
- #10931: Unit tests shouldn’t require internet access
Core
- #10466: jQuery.param() mistakes wrapped primitives for deep objects
Css
- #10639: outerWidth(true) and css(‘margin’) returning % instead of px in Webkit
- #10754: have jQuery.swap return the return of the callback instead of just executing it
- #10782: Incorrect calculating width
- #10796: Bug in IE7 with $(‘#el’).css.(‘background-position’)
- #10858: css.js regular expressions are incomplete
- #11119: The curCSS function only need 2 arguments
Data
- #11309: hexadecimal-formatted data-* attributes parsed incorrectly
Deferred
- #11306: calling .disable() or .lock() on a $.Callbacks object breaks its fired() status
Dimensions
- #3838: $(document).height() incorrect in IE6
Effects
- #8498: Animate Hooks
- #10006: method show is not working as expected in all browsers when called for document fragment
- #10848: Animation toggling loses state tracking in certain atomic edge cases
- #11415: Silently ignore negative CSS values where they are illegal
Event
- #8165: .live(‘click’, handler) fires on disabled buttons with child elements in Chrome
- #10819: Eliminate “this.on.call(this, “
- #10878: $(“select”).live(“change”, function(){ …broken in IE8 in jQuery 1.7
- #10961: Error in XRegExp using jQuery 1.7.1 in IE6-9
- #10970: The .on() selector parameter doesn’t work with :not(:first) selector
- #10984: Cannot off() custom events ($.event.special)
- #11021: Hover hack mangles a namespace named “hover”
- #11076: .clone(true) loses delegation filters
- #11130: jQuery.fn.on: binding map with null selector ignores data
- #11145: $(document).on() not working with name=”disabled”
Manipulation
- #9427: Passing undefined to .text() does not trigger setter
- #10753: inline the evalScript function in manipulation.js as it’s only used once
- #10864: text() method on a document fragment always returns the empty string
- #11055: Update HTML5 Shim elements list to support latest html5shiv
- #11217: Append problem with webkit
- #11291: Cloning XMLDoc’s with HTML5 nodeName’s breaks on IE
- #11323: script tags with type=”text/ecmascript” leak into the DOM
- #11356: safeFragment memory leak
Misc
- #10952: .fired() doesn’t work on Callbacks object when it is flagged with “once”
- #11257: Wrong path to source files in test suite if PHP missing
Queue
- #10967: .promise() does not attach methods onto target
Support
- #7986: Bug in $.support.boxModel if page has DIV-element CSS
- #11048: Support Tests affect layout for positioned elements in IE6-9
- #11337: Bug in $.support.reliableMarginRight
Traversing
- #11370: $(‘<div>’).siblings() throws exception
Announcing the jQuery Foundation
(BOSTON) — The jQuery Board, in conjunction with Software Freedom Conservancy, is proud to announce the formation of the jQuery Foundation, Inc., an independent organization that will manage jQuery, the Internet’s number one JavaScript library, and its constituent projects.
The jQuery Board previously administered jQuery under the aegis of the Conservancy, a public charity that acts as a non-profit home for free software projects.
The new jQuery Foundation is a non-profit trade association dedicated to supporting development of the jQuery Core, UI, and Mobile projects; providing jQuery documentation and support; and fostering the jQuery community.
Dave Methvin, who recently took over as the head of the jQuery Core development team, will also serve as the Foundation’s President. “jQuery is the most popular JavaScript library, and creating an autonomous organization is the next step in ensuring its future development and benefiting everyone who uses jQuery,” said Methvin. “We’ll be announcing several initiatives shortly, including the next jQuery Conference and other efforts driven by needs within the community and the project.”
“I’m extremely excited to see the jQuery Foundation springing to life. I’m glad that Dave Methvin is leading the foundation and the direction of the core library. He’s a good friend and exceedingly capable of moving jQuery forward,” said John Resig, who created the library in 2005. “Meanwhile, I’ve been spending more time focusing on improving the state of JavaScript and programming education at Khan Academy. I’m psyched to be a part of the jQuery core team and Foundation and can’t wait to see how jQuery grows in the upcoming years.”
“We are proud that the jQuery Board has built jQuery into a vibrant and successful Open Source community under Conservancy’s mentorship,” said Bradley Kuhn, Executive Director of the Software Freedom Conservancy. “Our mission includes helping member projects determine whether to form their own organization, and we’re pleased jQuery is the first Conservancy project to take that step.”
The jQuery Foundation would like to thank Joel G. Kinney of Fort Point Legal, whose generous pro-bono counsel has been invaluable in transitioning to an independent organization. The Foundation is also proud to accept an honorary first donation from the Linux Fund, which has chosen to continue its tradition of supporting the open source community with a contribution to the Foundation’s inaugural operating expense budget.
About jQuery
Created in 2005 by John Resig as a JavaScript library to provide an intuitive approach for working with the DOM and Ajax, jQuery has steadily gained popularity among the development community and is the most widely-adopted JavaScript library in use today.
About the jQuery Foundation
The jQuery Foundation is a non-profit trade association and the home of jQuery, the Internet’s number one JavaScript library. Founded by a group of leading JavaScript developers and architects, the jQuery Foundation is dedicated to three goals: supporting development of the jQuery Core, UI, and Mobile projects; providing jQuery documentation and support; and fostering the jQuery community.
jQuery Foundation, Inc. is a Delaware non-profit currently seeking IRS 501(c)(6) status. Donations to the jQuery Foundation will be used to further the goals of the Foundation. For more information, visit http://jquery.org.
About Software Freedom Conservancy
Software Freedom Conservancy is a non-profit organization that helps promote, improve, develop and defend Free, Libre and Open Source software projects. Conservancy is a home to twenty-eight software projects, each supported by a dedicated community of volunteers, developers, and users. Conservancy’s projects include some of the most widely used software systems in the world across many application areas, including educational software deployed in schools around the globe, embedded software systems deployed in most consumer electronic devices, distributed version control developer tools, integrated library services systems, and widely used graphics and art programs. A full list of Conservancy’s projects can be found at http://sfconservancy.org/members/current/. Conservancy provides to these projects the necessary infrastructure and not-for-profit support services to enable the project’s communities to focus on what they do best: creating innovative software and advancing computing for the public’s benefit.
jQuery 1.7.2 Beta 1 Released
Hey there Internets, it’s the jQuery Core team! We haven’t talked in a while, but over the holidays we were busy fixing the bugs you reported. The result of that hard work is jQuery 1.7.2 Beta 1. We decided to get a beta out by Groundhog Day so you wouldn’t be in the shadow of six more weeks of unfixed bugs.
You can get the code from the jQuery CDN:
Oh, we know what you’re thinking: “Cool, a new version of jQuery; I’ll wait until the final release has been out a few weeks and then I’ll give it a try.” Right, and then you’ll find some bug that keeps you from upgrading. Nothing makes us sadder than finishing up a release and only then seeing a report of a serious bug that could have been fixed earlier.
So please, come out of your burrow and try this beta with your code. Did we miss an old bug? Did we create a new bug that makes you feel like Bill Murray waking up to “I Got You Babe?” We want to know. You can use the bug tracker to report bugs; be sure to create a test case on jsFiddle so we can figure it out easily. If you’re not sure it’s a bug, ask on our forum or on StackOverflow.
jQuery 1.7.2b1 Change Log
The current change log of the 1.7.2b1 release.
Ajax
- #10978: jQuery.param() should allow non-native constructed objects as property values
Attributes
- #5571: Allow chaining when passing undefined to any setter in jQuery
Build
- #10692: Configure the jshint options to more accurately match the style guide
- #10902: ability to test a built version of jQuery in unit tests
- #10931: Unit tests shouldn’t require internet access
Core
- #10466: jQuery.param() mistakes wrapped primitives for deep objects
Css
- #10639: outerWidth(true) and css(‘margin’) returning % instead of px in Webkit
- #10754: have jQuery.swap return the return of the callback instead of just executing it
- #10782: Incorrect calculating width
- #10796: Bug in IE7 with $(‘#el’).css.(‘background-position’)
- #10858: css.js regular expressions are incomplete
- #11119: The curCSS function only need 2 arguments
Effects
- #8498: Animate Hooks
- #10006: method show is not working as expected in all browsers when called for document fragment
- #10848: Animation toggling loses state tracking in certain atomic edge cases
Event
- #8165: .live(‘click’, handler) fires on disabled buttons with child elements in Chrome
- #10819: Eliminate “this.on.call(this, “
- #10878: $(“select”).live(“change”, function(){ …broken in IE8 in jQuery 1.7
- #10961: Error in XRegExp using jQuery 1.7.1 in IE6-9
- #10970: The .on() selector parameter doesn’t work with :not(:first) selector
- #10984: Cannot off() custom events ($.event.special)
- #11021: Hover hack mangles a namespace named “hover”
- #11076: .clone(true) loses delegation filters
- #11130: jQuery.fn.on: binding map with null selector ignores data
- #11145: $(document).on() not working with name=”disabled”
Manipulation
- #9427: Passing undefined to .text() does not trigger setter
- #10753: inline the evalScript function in manipulation.js as it’s only used once
- #10864: text() method on a document fragment always returns the empty string
- #11055: Update HTML5 Shim elements list to support latest html5shiv
Misc
- #10952: .fired() doesn’t work on Callbacks object when it is flagged with “once”
- #11257: Wrong path to source files in test suite if PHP missing
Support
- #11048: Support Tests affect layout for positioned elements in IE6-9
Plugins Site Update: The Old Is New Again
We’ve gotten a lot of feedback since last week’s announcement about the plugins site’s unfortunate tumble into oblivion, and I’d like to address a few of the most important concerns that have surfaced since.
“Could you make the old backup available for posterity?”
Yes. We can — and have. Over the weekend, we restored the most recent backup we had, and the original site is now living at archive.plugins.jquery.com; you should be able to browse through everything that’s there to your heart’s content. We also applied the most recent user information we had, so if you had an account on the old site at any point in the last year, it should still work. However, the site is closed to new user registrations. If you really need a new account, please get in touch with me personally and I can get that straightened out for you. We’ve also set up a redirect, so that if you should encounter any links to plugins.jquery.com in your browsing, you’ll (hopefully) end up at the corresponding page in the archive.
Just get a backup from the Wayback Machine!
While the Internet Archive has cached versions of content that was updated more recently than last October, we just don’t have the people-power to re-create the lost posts manually in the new archive site. If you have an account, you can feel free to add “new” or old plugins, or update existing ones, should you desire to. However, this archive will not be indexed by search engines.
If you hate CMS-es so much, what’s with WordPress?
We’re in the middle of a network-wide redesign, and WordPress offers us a valuable set of tools when it comes to theming, searching, and serving a group of sites. Our new motto, however, is pull requests, not passwords; we’re implementing theming, documentation, plugins, and more in such a way that contribution will not actually require an account on our CMS at all. As I outlined in the initial post, the plugin submission process will only involve adding a post-receive hook to your repository. In the event of a similar catastrophe, we’re made sure we’ll be able to replay the entire plugin contribution history and get the site back up to speed right away. Our goal is to leverage the WordPress features we find useful without it serving as a barrier to entry or as the canonical warehouse of content. If you are of the mind that WordPress is always a bad idea, no matter what, no matter how, you’re certainly entitled to that opinion, but at this point, it’s not particularly beneficial to the conversation.
Git(Hub) is hard
The new plugins site will serve as an index of plugins, with a simple “download” button right on each plugin’s page. You will not have to just browse around GitHub looking for jQuery plugins. If you don’t know git and only ever want to download jQuery plugins, you don’t have to learn it. However, if you want to submit plugins, you’ll have to be using some sort of source control that you can at least mirror in git. This is by design: it can be really easy to build a jQuery plugin, but that doesn’t mean it’s necessarily fit for public consumption. Requiring the use of source control and package.json are passive mechanisms that will help ensure that plugins which proliferate are authored by developers who have met a reasonable baseline (and aren’t selling batteries). We’re only targeting GitHub support for launch, but we’d like to add support for other services as well. We are actively avoiding the use of GitHub-specific features that would force us to limit the site to GithHub users permanently.
It’s A Conspiracy!
Some have called into question the veracity of my account, and that’s understandable, given the timing and circumstances. But believe me, the last thing I wanted to do after spending a day manually pruning spam from the directory was turn around and cause a gigantic headache for thousands of people, including myself and my colleagues. I hope the re-launching of the last backup at least partially allays these concerns. Additionally, we’re starting off with GitHub simply because it has a very broad user base already, and it has been incredibly positive for us since we shifted to it for development of jQuery Core, UI, and Mobile.
Thanks again for bearing with us during this transition.
What Is Happening To The jQuery Plugins Site?
For about a week, instead of hosting several hundred jQuery plugins and several thousand advertisements for laptop batteries, our plugins repository has been serving up a pretty pathetic message about spam and an allusion to some “new submission process.” This happened very suddenly, and we’re sorry to everyone who’s been inconvenienced. Please allow me a few minutes to explain what happened, where we’re headed, and how it impacts you. If you’re in a rush, here’s the short version.
The Backstory
Though the plugins site you’ve known and loved was a valuable tool when it was first set up, it gradually became something of a white elephant for the project. While powerful distribution tools like GitHub and npm have come to the fore, we’ve been stuck in an aging, CMS-oriented paradigm that frustrated developers and consumers of plugins alike. Many people moved onto alternative sources for finding and vetting plugins. Furthermore, the sites’s original implementors and maintainers had since moved on from active involvement within the jQuery project. While the team faced a steady stream of complaints about usability and a general lack of features, the site itself faced a veritable barrage of (several flavors of) spam. There was your standard, keyword-rich SEO garbage, but there was also something slightly more insidious: the batch posting of under-documented, demo-free plugins with links to paid download sites by third parties trawling for affiliate cash. While this wasn’t explcitly disallowed, it led to a terrible, confusing experience for users and gave the site the distinct sense that all was not on the up and up.
The Best Laid Plans…
Sensitive to all these problems, the team began drawing up requirements for a complete overhaul. We knew we wanted to get out of the business of accepting uploads, serving downloads, and generally legislating the plugin “release” process on our own servers. With our official projects already on GitHub, we knew we wanted to leverage the many wheels they’d already invented for distribution, versioning, and facilitating open, collaborative development. Another requirement was to create a standard schema for authors to clearly delineate dependencies, like which version(s) of jQuery a plugin supports, as well as other plugins and CSS assets it requires to be functional. We also wanted to introduce some quality control, with both passive mechanisms like requiring GitHub and a manifest file for distribution, as well as active ones like user ratings. Finally, we wanted a clean slate; with stricter requirements for submission, there could be no mass import of all the old plugins. We made a lot of progress preparing specifications, but hampered by a lack of resources and a number of other projects, we never were able to get too deep into the implementation phase. After all, the old site “worked!”
…Often Go Awry

As the glut of spam grew worse and multiple reports started showing up on the jQuery Core bug tracker, I wanted to at least take some steps to wipe a bit of the spam and egg off our face. With newly provisioned access to the administrative tools on the site, I teamed up with the Drupal Views Bulk Operations module and set out to identify and delete spammers and their posts. Within a day or two, nearly 90% of the alleged “content” was gone from the site. I continued to monitor the situation over the ensuing days, and deleted spam as it came in. Unfortunately, I likely cast too wide of a net, and threw out several perfectly good babies with the bathwater. Even more unfortunately, I didn’t back up the database before I began this process. At this point, you can probably see where this story is headed. Later in the week, while I was attempting to delete four spam items, I was left completely horrified when the results of the operation reported that the remaining 10% — every single plugin remaining in the database — had been purged. All that remained was a year-old backup. Of course, I realize that this is a dreadful outcome, and I take full responsibility for it. If it helps, I am very receptive to hate mail and tweets reprimanding me for being irresponsible, unprofessional, or just stupid.
At this juncture, we were left with two choices.
- Keep on kicking the can down the road: Restore from the old backup, losing a lot of data anyway, and have authors go through the painstaking process of re-uploading their plugins, even though the site was slated to be deprecated entirely anyway.
- Use this glaring mistake as the impetus to hunker down, cleave from the past, and finally implement the site we’ve talked about for so long.
We’ve chosen the latter.
Nuts And Bolts
Over the past few days, we’ve started converting our plans into action, building out an infrastructure that’s backed by GitHub. There are two requirements for listing a plugin on the new site:

- A valid package.json file
We’ve followed the lead of CommonJS and npm and created a schema for specifying dependencies, delivery, and other metadata of jQuery plugins. While the format is largely similar to those other projects, we’ve had to make some minor tweaks to account for some plugin-specific details. - At least one versioned release
This means having tagged your release point(s) with a valid semantic version number (semver) string.
We’ve pared down the submission and maintenance process to a single, one-time step: adding a post-receive hook to your plugin’s GitHub repository. Assuming your plugin meets the guidelines, a page will be created on the plugins site to present your usage and download information. We’ll keep track of new releases as you push them.
In The Interim
We recognize that the old site was still serving as an regular resource for a lot of people, especially newer jQuery users, who simply valued the existence of a central browsing location, despite its flaws. Though many experienced users had moved on to other sites, or relied on relationships with trusted authors and word of mouth, these can take time to develop. Until we’re able to launch the new system, we’re happy to direct you to several other directories and people who can help pick up the slack:
If, in the process of searching these or any other directories, you are directed back to the current site at plugins.jquery.com, typically a quick search for the author’s name and the plugin name will yield an alternative site where it was hosted. In addition, DailyJS just did a useful roundup of alternatives that goes into more detail.
Next Steps For Plugin Authors
If you’re a plugin developer who wants to make sure your plugins will be ready to go on day one (or even beforehand), you’ll want to make sure your plugins are up on GitHub, and then you’ll want to get started on creating your package.json files and making sure your versions are appropriately tagged. If you aren’t already familiar with Git and GitHub, then this is probably a very good time for you to take the plunge and get started. If you prefer another SCM system, you can look into setting up a mirror to git from svn or hg, or other project hosting sites, like bitbucket or gitorious. If you don’t develop your plugins as open source, or you don’t use any source control at all, we will not be able to accomodate you at this time.
How Can I Help?
Though the site is still a work in progress, you can track progress and even set up your own local development right now at github.com/jquery/plugins.jquery.com/. We’re still working on getting a public staging environment together.
Though the site is essentially “powered by” GitHub, there are obviously a number of moving parts in play. The site will actually be served from inside of WordPress, which is populated with the contents of the indexed plugins using a node.js tool. There are still many kinks to be ironed out, so if that sounds like a stack you want to jump on, please join us over at the repo. We’ll be using GitHub Issues for all feature requests, bugs, and discussion.
While we’ve put a great deal of thought into putting together our package.json schema, it’s still a living document, and if you have questions or comments on why it is the way that it is, head on over to this issue.
Errata
In an ideal world, this certainly wouldn’t have happened exactly as it did. Sadly, it did. We hope you’ll accept our apologies for the many ways this transition might make your job harder, give you some extra work you weren’t expecting, or just plain leave a bad taste in your mouth. If you are able to forgive us, bear with us, and maybe even lend a hand, we’re confident we’ll be able to deliver the modern, useful plugins site the community deserves.
TL;DR
So that was a lot of words, here’s the takeaway.
- We’d been planning on replacing the original, spam-ridden plugin site for quite some time
- In the process of deleting on the spam, all the plugins were deleted and we didn’t have a recent backup
- Instead of burning cycles keeping the old site on life support, we decided to make a clean break and kick development on the new site into high gear.
- The new site is powered by GitHub and a package manifest for plugins
- Plugins from the old site were never going to be automatically imported into the new one.
- The repo is at github.com/jquery/plugins.jquery.com
- We are very sorry, but also very excited!
jQuery Conference 2012: UK – Training Workshops Announced
We are very happy to announce two training workshops for this years United Kingdom conference. The trainings will be given by Doug Neiner, Ralph Whitbeck and Mike Hostetler of appendTo. The general admission tickets for the conference are now sold out but you can buy conference/training bundles and still attend the conference.
appendTo will be giving Introduction to jQuery and jQuery Mobile workshops. The workshops will be held on Thursday, 9 February, 2012 at the Lady Margaret Hall in Oxford, UK.
Introduction to jQuery
jQuery has become the most popular JavaScript library for developers because of it’s easy to learn and write. This course takes students through the basics of jQuery focused front-end development. This material is meant to establish a core foundation for developers. With a solid basis of jQuery and JavaScript understanding a developer will feel confident that they can add richness to their web applications.
jQuery Topics Covered*
- Introduction
- Find Something, Do Something
- The jQuery Function
- The jQuery Object
- Events/Ajax/more…
* Topics subject to change
Price for the Introduction to jQuery workshop is £320 + VAT which includes a conference pass, £160 + VAT for just the training.
jQuery Mobile
jQuery mobile has gained undeniable press as a possible great solution to mobile web development. With a progressive enhancement approach jQuery mobile aims to allow a mobile web experience for all, while rewarding those with mobile devices capable of a rich experience.
This training will cover a comprehensive review of the jQuery Mobile Framework, walking through all of its new features and functionalities available to build robust and cross-platform mobile sites. The entire API will covered along with examples of how to use each component to its fullest potential.
The training concludes with a walk through of the construction of a jQuery Mobile application from scratch, all the way through to compiling a native version of the application with PhoneGap.
Topics Covered*
- The state of the mobile web
- jQuery Mobile Feature Overview
- Building a jQuery Mobile application from scratch
- Go native with jQuery Mobile + PhoneGap
* Topics subject to change
Price for the jQuery Mobile workshop is £420 + VAT which includes a conference pass, £270 + VAT for just the training.
The training workshops will be held on 9 February, 2012 at the Lady Margaret Hall and not at the Saïd Business School where the conference will be held.
Call for jQuery 1.8 Ideas
We’re ready for our next round of community input, this time for version 1.8! This is your chance to suggest things we can fix, add, change, or remove in jQuery to make it better.
You can add a suggestion using this form; whenever possible provide links to a bug report, a page with a detailed description, or implementations that represent your idea. We’d like to have all your input by December 5 so we can read and discuss them before setting the 1.8 roadmap.
Many thanks for the suggestions left on our earlier blog post about how we can improve jQuery by trimming it down. We’ve gone through those comments and have a few thoughts about how we can address some of them in future versions.
Create a configurable download builder
Several people wondered why we don’t have a way to build a file with just the parts of jQuery you need, since jQuery UI, for example, has that option. It’s not quite the same situation. You know if you are using, say UI Accordion because you call it directly. You often do not know if you or some plugin you include on your page is using $.fn.prepend() or $.fn.animate(). Whether you are using them may even depend on parameters you pass to plugins at runtime.
To keep jQuery development manageable and ensure that CDNs can offer a single file that everyone on the Internet can share and cache effectively, the team wants to stay with a single file as its primary offering. Creating a configurable download may improve file size marginally, but it also complicates documentation, plugin use, and debugging. That is a lot more work for both you and us.
We’re already beginning the efforts to improve modularity by eliminating unwanted dependencies inside jQuery; many of the deprecated features we announce will be directed towards removing those dependencies. By laying that groundwork, others who want to create their own smaller subsets of jQuery or modular versions should have a much easier job.
However, we believe we can do even better than that, and would like to offer automated ways for any user to create an optimally minimized file that includes both application code and just the needed parts of jQuery. In particular, we are working with the Google Closure Compiler team to see if we could use its ADVANCED_OPTIMIZATIONS option. We’ll have more information on our progress as it develops.
Wait until version 2.0 before removing things
We’re sensitive to breaking all the existing jQuery code out there. That is why we are deprecating things as early as possible, so that people have plenty of time to change their code. Just because we deprecate something today, it does not necessarily mean we’ll remove it in the next version. We believe the list of things actually being removed in 1.8 are minor and unlikely to affect most users.
If our experiments with Closure Compiler pan out, we may even be able to leave in many deprecated features but they will be automatically removed if you don’t use them and build a custom application file that includes jQuery. That would be the best of both worlds.
Remove IE 6, 7, and/or 8 support
This topic comes up constantly, so let’s try to put it to bed once and for all. People tend to greatly overestimate the amount of code in jQuery that is specifically related to IE. Most of the problems in IE 6 and IE 7 are also present in IE 8, so there is no real size or complexity benefit to dropping support for the first two as long as that last one still has appreciable desktop market share and must be supported. Nobody (including Microsoft itself) likes these Jurassic Park browsers, but stripping out support for them right now would break web sites for many users.
That said, we know that older-IE support is not required in some scenarios such as mobile browsers. We are looking into ways to put as much of that code as possible into a single clearly marked block so that it can be easily removed by someone who is willing to create their own custom jQuery version. It may also be possible to get Closure Compiler’s help with this issue as well. However, we are not sure that will even provide a significant space savings in gzipped file size, and it won’t offer a performance boost since those code paths aren’t taken in other browsers.
Remove jQuery.browser
We have documented for nearly two years that we intend to move jQuery.browser into a plugin, and several people suggested it in the comments as well. Browser sniffing is not a reliable way to look for features, we recommend something like Modernizr instead. The regular expressions used for browser sniffing are large and don’t compress well; moving it to a plugin will ensure that only the people who use it must pay that size penalty.
What about your ideas?
Please do take this opportunity to give us your input. The team is looking forward to reviewing your suggestions. Oh, and don’t forget to try jQuery 1.7.1 soon!
jQuery 1.7.1 Released
Here in the United States, we’re celebrating Thanksgiving this week. For those of you living elsewhere in the world, it’s a time when we install and test new versions of Javascript libraries while feasting on Mom’s homemade goodies. Kind of like a code sprint, but with better food. We invite everyone worldwide to join us in these traditions.
To kick off the festivities, the jQuery Team is quite thankful to be releasing version 1.7.1! In this go-round we made Pilgrim’s progress on a cornucopia of bugs, listed below. We are serving up our delicious copies on the jQuery CDN, fresh and warm from the oven:
These latest files should also be up on the major CDNs shortly, but please be patient since this is a holiday week for them as well.
Please install and test this latest slice of jQuery with your code. We hope you’ll find it tasty. If we forgot to fry some turkey of a bug, we want to hear about it. Just put together a specific test case for the problems you’ve found (we love jsFiddle.net for that) and create a bug report at bugs.jquery.com.
Also, please welcome new jQuery Core team member Mike Sherov! We’re thankful to have his help for all the great things we have planned for upcoming versions. Mike has a full-time job at SNAP Interactive in New York City, but contributes to the project in his spare time. Please Be Like Mike and pitch in to help the project any way you can. It doesn’t have to be coding. We can always use help in answering questions on the forum or just reproducing and identifying the source of obscure bugs reported on the bug tracker. See our Getting Involved page for information.
We’ll be opening the call for 1.8 suggestions in just a day or two. Take a look at the 1.7.1 release and think about what kind of awesome sauce we can put on top of it for the next big one!
jQuery 1.7.1 Change Log
The change log of the 1.7.1 release.
Ajax
- #10723: jqXHR.always() returns a Promise instead of a jqXHR object
Attributes
- #10724: $(document).text() always returns an empty string
- #10773: removeAttr is fragile for edge cases
Build
- #10630: Fix focus-related test failures to resolve Swarm failures
Core
- #10616: Type coersion not done for -1 in .eq
- #10646: Have jQuery.error throw instanceof Error object
- #10682: Creating DOM elements with $(‘ ‘) leaks memory and skips the fragment cache
- #10687: jQuery calls the AMD define() global function too early
- #10690: isNumeric
Css
- #10733: remove uses of jQuery.each in css module in favor of a for loop
Data
- #10675: Use internalKey shortcut instead of jQuery.expando
Effects
- #10669: .animate() no longer animates percentage(%) width
- #10750: A “null” in the data object can cause an error in stop
Event
- #10676: wheelDelta not added to mousewheel event anymore
- #10701: Problems with submit forms using submit function
- #10704: special.handle method should fire under origType name
- #10705: off bug event name parser
- #10712: Triggering blur with live bind broken
- #10717: A triggered load bubbles up to window
- #10791: Delegated Events fail on SVG elements
- #10794: .triggerHandler should not .preventDefault()
- #10798: live(“submit”) and .submit() would cause unobtrusive ajax live to fire twice
- #10844: .delegate() on submit doesn’t work when form contains input with name “id”
Manipulation
- #10177: index of callback function in .wrap is always 0
- #10667: HTML5 Support in .wrapAll() does add a “:” to element
- #10670: rnoshimcache probably not constructed correctly
- #10812: passing empty object to .before() or .after() throws exception in IE7
Misc
- #10691: remove all occurrences of the “equals” and “same” function in the unit tests`
Support
- #10629: IE is much too sensitive concerning the fake body. Explore cleaning up support.js to avoid any future crashes.
- #10807: Non-ascii apostrophe in comment
Getting Board of jQuery
TL;DR The body responsible for overseeing jQuery’s finances and administration, which was until today known as the jQuery Team, is now called the jQuery Board. The jQuery Team is for anyone who invests a significant amount of time contributing to jQuery and its related projects.
As jQuery has grown from a cool idea in 2005 to the most widely used piece of JavaScript on the Internet today, so too has the organizational structure required to support its development and its community. Over time, e-mail chains became mailing lists, and out of those lists evolved a casual confederation known as the jQuery Team. To join this team, all you had to do was make a consistent contribution to some aspect of the project and eventually John would add your name to a page in our docs wiki.
By 2009, the team wanted to solidify the long-term future of the project, so we accepted an invitation to join the Software Freedom Conservancy, from whom we’ve since received great amounts of administrative and legal support. Though the SFC offers that “Projects can continue to operate in the same way they did before joining the Conservancy without having to select a board of directors or any other layer of corporate management,” the team chose to implement a governance system whereby the project’s official decisions would be communicated to the Conservancy after a public vote by the members of the “core team,” which initially had 21 members. This conferred a significant amount of formality onto what had been a relatively ad hoc process, and while the system has worked well, it has been accompanied by some confusion.
- On one hand, there’s the voting membership, responsible primarily for financial and managerial decisions concerning the entire project. On the other, there’s an actual group of people who are working on jQuery Core itself. Both of these groups are sometimes called the jQuery Core Team, which is fairly misleading.
- As new people come along and become active contributors to some part of the project, it’s not fun to tell them, “Hey, great job, but you’re *not* on the team!”
- Just because you are really interested in hacking on jQuery Core, UI, or Mobile (or working on docs, or any of the many other ways you can help out the project) doesn’t mean you have the slightest desire to sit in long meetings, discussing how to allocate funds and how to improve beverage service at the next conference.
- As people’s lives ebb and flow, it’s normal that their capacity to contribute changes. What’s the right correlation between being a genuinely active contributor in the present tense and having a vote in the project’s big-picture management?
In order to attempt to resolve some of this confusion and make clearer the group’s purpose, the jQuery Team is now known as the jQuery Board, and all the governance rules that applied to the Team now apply to the Board. The Board is responsible for
- approving and appropriating expenditures
- representing the intentions of the jQuery Project to the SFC
- overseeing and directing the Subteams and selecting the Subteam Leads responsible for each of the facets of the project
- voting on its own composition
If you’ve always wanted to be “on the team,” but were unsure of what it meant or what you would do, this is good news! We’re fully embracing the Wikipedia definition of team: a group of people (or animals!) linked in a common purpose. As such, anyone who volunteers, over a sustained period of time, to serve actively on a jQuery Subteam will be invited to join the jQuery Team (at the discretion of the Subteam Lead), so you can feel good putting that on your slide decks, refrigerators, and so forth.
What isn’t changing is the fact that if you are passionate about web development and trying to find a way to make a difference to developers around the world, there is a place for you in the jQuery community. Hop onto the forum and give another developer a hand. Head over to our various bug trackers and help triage the open issues — or dive in and see if you can provide a patch. If you just want to get a lay of the land, join the weekly IRC meetings. Want to work on a particular project? Take a look through the updated team page and get in touch with the right subteam lead! One thing’s for sure:
jQuery 1.7.1 RC1 Released
Just to let you know we’re not asleep at the switch around jQuery Central, we’ve got a new preview release of jQuery. It fixes the problems reported by the community since the original 1.7 release. Please test the code in your applications, making sure that there are no major problems. If you tried jQuery 1.7 and reported a bug, it should be fixed in this release.
You can get the code from the jQuery CDN:
You can help us by dropping that code into your existing application and letting us know that if anything no longer works. Please file a bug and be sure to mention that you’re testing against jQuery 1.7.1 RC1.
We want to encourage everyone from the community to try and get involved in contributing back to jQuery core. We’ve set up a full page of information dedicated towards becoming more involved with the team. The team is here and ready to help you help us!
jQuery 1.7.1 RC1 Change Log
The current change log of the 1.7.1 RC1 release.
Ajax
- #10723: jqXHR.always() returns a Promise instead of a jqXHR object
Attributes
- #10724: $(document).text() always returns an empty string
- #10773: removeAttr is fragile for edge cases
Build
- #10630: Fix focus-related test failures to resolve Swarm failures
Core
- #10616: Type coersion not done for -1 in .eq
- #10646: Have jQuery.error throw instanceof Error object
- #10682: Creating DOM elements with $(‘ ‘) leaks memory and skips the fragment cache
- #10687: jQuery calls the AMD define() global function too early
- #10690: isNumeric
Css
- #10733: remove uses of jQuery.each in css module in favor of a for loop
Data
- #10675: Use internalKey shortcut instead of jQuery.expando
Effects
- #10669: .animate() no longer animates percentage(%) width
- #10750: A “null” in the data object can cause an error in stop
Event
- #10676: wheelDelta not added to mousewheel event anymore
- #10701: Problems with submit forms using submit function
- #10704: special.handle method should fire under origType name
- #10705: off bug event name parser
- #10712: Triggering blur with live bind broken
- #10717: A triggered load bubbles up to window
- #10791: Delegated Events fail on SVG elements
- #10794: .triggerHandler should not .preventDefault()
- #10798: live(“submit”) and .submit() would cause unobtrusive ajax live to fire twice
Manipulation
- #10177: index of callback function in .wrap is always 0
- #10667: HTML5 Support in .wrapAll() does add a “:” to element
- #10670: rnoshimcache probably not constructed correctly
- #10812: passing empty object to .before() or .after() throws exception in IE7
Misc
- #10691: remove all occurrences of the “equals” and “same” function in the unit tests`
Support
jQuery Conference 2012: United Kingdom Announced

We are very happy to announce jQuery Conference 2012: UK, the first jQuery conference in the UK, on 10th February 2012. The conference will be held at the Saïd Business School in Oxford with a line-up including six jQuery team members and four industry experts:
Tickets
You can read more about the line-up, talks and location on the event site and tickets are on sale now at EventBrite.
Organizers
The event is being organized by Oxford based digital agency White October with the permission of the jQuery project and with the help and support from jQuery team members. Last year, the jQuery events team tried to put together an event outside the USA and we found how very hard it was to secure a venue from so far away. The jQuery Team is very happy to be working with White October in putting the conference together, and we hope to have you join as we make our European debut!
Sponsorship
If your company is interested in sponsoring the event please take a look at the sponsor pack, please feel free to email or phone (+44(0)207 976 4894) John at White October to discuss the different options.
jQuery 1.7 RC2 Released
Today, after a very scary Halloween, the jQuery team is releasing jQuery 1.7 RC2 from our Github crypt, er, repo. Barring a report of really terrifying problems or a mob of townspeople at our door with torches, this code will be exactly the same code that becomes the version 1.7 final. If anyone knows of any reason why this code should not become a final release, we need to hear you scream!
BITS FOR RC2;
PLEASE TELL US
IF IT WORKS
FOR YOU
In RC2, we fixed a tricky problem that sometimes caused Internet Explorer 8 to go full-zombie when jQuery was loaded. Appropriately enough, the crash was related to creating a detached <body> element that we were using to perform feature detection. IE8 seems frightened to a crashy death when it sees a detached body. If you still see any problems with IE8 crashes, please let us know.
Thanks to a bug report from @warrenparsons, we also fixed a frightful regression with the .show() method. We really appreciate the efforts from those of you who are testing these pre-release versions. Sure, it’s a lot easier to think, “I’ll try it when it’s finally released,” but then any problems you do find will be preventing you — and possibly hundreds or thousands of others — from upgrading. Now that is really scary, at least to us.
During the next day or so we’ll be conjuring up documentation for many of the 1.7 additions and improvements on api.jquery.com. Please bear with us for a few days while we clean up the pages and make sure that it is filled in and all linked properly. For a quick overview of what’s changed, see the 1.7 category.
jQuery 1.7 RC 2 Change Log
The current change log of the 1.7 RC2 release.
Ajax
- #9399: Deprecate jqXHR.success and jqXHR.error
Attributes
- #5479: removeAttr: remove multiple attributes
- #6743: map enctype to encoding, depending on browser
- #10176: Injected script tag is evaluated twice
- #10278: checkboxEl.attr(‘checked’) returns stale value after checkboxEl.click()
- #10429: IE7 – invalid procedure call or argument when calling removeAttr(‘contenteditable’);
- #10514: removeAttr does not remove the class attribute in IE6/7
Core
- #6485: Solution for HTML5 in IE
- #7102: Register jQuery as a CommonjS async module
- #9453: $.inArray does not support fromIndex
- #10478: Switch jQuery.isNaN to jQuery.isNumeric
Css
- #10267: IE8 and window is(‘:visible’) crashes
Data
- #7323: Allow removing multiple data keys at once with $.fn.removeData
- #8909: $(element).data() will scan all attributes more than needed.
- #8921: jQuery private data should stay private
Deferred
- #8856: Request: deferred.isUnresolved()
- #9033: try{ } finally{ } error in IE8
- #9398: Proposal for Improved Deferreds
Dimensions
- #9434: .outerWidth()/.outerHeight()/.innerWidth()/.innerHeight() should work on window and document
Effects
- #5684: Effects: exception in animation callback causes endless loop
- #6150: .stop sometimes doesn’t clear .delay
- #6641: Calling stop() within animation finished callback causes other animations to freeze
- #8685: Animations should keep track of animation state in order to properly address stacked animations
- #9280: Allow multiple effect queues for animate()
- #9548: animate does not work with fill-opacity css property for svg elements
- #10445: Setting queue to true causes an error
- #10497: .stop should allow choosing which queue to stop
- #10622: .show() does not properly restore CSS-set “display” value
Event
- #3368: event.metaKey should be assigned to event.ctrlKey on Non-Mac only
- #6170: jQuery(window).scroll(); causes IE* to scroll to 0,0
- #6319: Regression: stopPropagation inside change handlers in IE is incorrectly applied to keydown event
- #6386: support data argument for live events via “event.special.live.add”
- #6593: IE8: DOM 0 event handler called twice when a separate handler is attached via jQuery
- #6667: submit event doesn’t delegate in IE* under certain conditions
- #6903: special events need a way to determine whether they are being bound with .bind vs .live/.delegate
- #6942: JQuery.event.fix causes unnecessary reflows in IE when handling key events
- #7139: “hover” event alias should work for .bind as well as .live
- #7161: Submit event on a form element not unbound properly in IE
- #7444: Submitting form with “Enter” instead of button click on ie8 or ie7 triggers live submit event twice.
- #8157: Focusing an already focused text field will prevent the change event from firing in IE
- #8728: Event ‘mouseenter’ not firing when the element being left is removed on leaving
- #8789: Meta: Event Property Hooks
- #8858: Special events – _default method doesn’t have access to the `data` argument of the trigger method
- #8866: IE8 input[type=file] delegated change event files only on blur
- #8982: bind(“unload someOther”) => on unload, handler is not executed only once.
- #9069: when hover over a child of an element, mouseleave fires when using live or delegate
- #9279: delegate() bind does not handle mouseover/mouseout and mouseenter/mouseout correctly for selected elements
- #9393: Unify and DRY out event system
- #9593: Delegated submit event is not instanceof jQuery.Event in IE
- #9724: Infinite loop in trigger function when window.parentNode is a DOM element
- #9901: event.handleObj.namespace incorrect when using .delegate
- #9933: jQuery.fn.toggle() should store state in private data object
- #9951: Wrong order in .trigger() when DOM is modified in a handler
- #10375: Do not include `type` in jQuery.event.props
- #10438: Rename jQuery.event.propHooks => .fixHooks
- #10468: Remove deprecated jQuery.event.guid and jQuery.event.proxy
- #10489: Disconnected elements bubble to window on .trigger()
- #10531: Consider removing layerX and layerY from $.event.props
- #10563: jQuery.Event no longer contains the element that matched the selector in event delegation.
- #10567: Delegated events incorrectly match class names
- #10575: Breaking changes in live event propagation between 1.6.4 and 1.7rc1
- #10576: jQuery1.7rc1 and jQueryMobile1.0rc2 – IE gets error in jqm triggerCustomEvent method
Manipulation
- #6782: carefully allow more strings to use innerHTML
- #7037: Duplicate mouseover and mouseout events added to cloned element.
- #10501: HTML5 element “innerShiv” inconsistent across html()/append()
Misc
Selector
- #3144: Inconsistent cross-browser results from .text() method
- #5637: Boolean (and Empty) Attribute Selectors Fail
- #6863: faster getText
- #7128: attribute selector is inconsistent between qSA and Sizzle due to use of DOM properties
- #8539: Sizzle cache collision in browsers without querySelectorAll
- #9261: Has Attribute not working in filter/children/siblings
- #9570: Selector $(‘form[name=".."]‘) returns zero elements in IE8 under some conditions
- #10178: $(window).is(“a”) >> Uncaught TypeError: Cannot call method ‘toLowerCase’ of undefined
- #10315: Sizzle ignores seed argument when using positional selectors
- #10562: siblings method returns unexpected elements when using Sizzle-invoking pseudo-selectors
Support
- #5145: jQuery.support.opacity = false in the Chrome browser
- #6809: Add jQuery.support.fixedPosition
- #10558: Test Support bug
- #10613: IE8 doesn’t like a detached body in its head
Traversing
- #10449: Function $(“#id”).closest(“.class”) returns element $(“#id”) itself if it has .class
Learn more about jQuery
Live edit functionality in web pages and web apps is all the rage these days but never fun to implement. ...
I only just found out that the jQuery validation plugins has a validation rule called “remote” which can be used ...
jQuery function to check if horizontal scroll is present – hasHScrollBar() – (or vertical check below also, util function to ...
jQuery function to Set any DOM Element to Top View (bring to front) using CSS Z-Index property.
Is it possible to declare arrays in JavaScript object literal notation? Example 1 – this works with arrays Declaration: Storage ...
To get the a variables type using jQuery there is a jQuery function called .type() which returns “array”, “string”, “number”, ...
In this post you can find tutorials which explain step by step different API use cases with jQuery like Google ...
For valuable work on creation of sites you need a good comfortable editor necessarily. There are many requiring paid products ...
Today we are sharing with you a collection of awesome jQuery Camera Photo plugins. They offer a range of image ...
Back in the day, if you saw something that was animated on a website it was automatically assumed to be ...
In this post, we have compiled a list of 10 jQuery HTML5 Audio players available today, most allow native audio ...
jQuery Mobile is a powerful framework for making mobile web applications. But can we use it to convert existing desktop ...
I have jotted a quick post on a Basic JavaScript Regular Expression Example to give beginners out there a taste ...
In April 2012′s edition of Interestingly Random JavaScript, jQuery and Web Development we bring you some very cool stuff such ...
In this post we are sharing you a roundup of 10 really jQuery plugins as of today. Pretty cool plugins ...
As always expected from the jQuery community, the compilation we have for you today are some good and impressive recently ...
A collection of jQuery PNG/JPEG/GIF plugins that enables image animation, cartoon-like background, etc… let them help you design displays for ...
A collection of JavaScript/jQuery Zip/File/Compressor plugins that allows you to minify your JS code and compress your JS files ready ...
Quick jQuery code snippet on how to keep an element in view. For demo scroll down on any page on ...
Here is what I think is the best and most reliable way to load jQuery library and jQuery UI Libraries. ...
Use jQuery and the Google Maps API to create your own map application.
Super cool and easy way to get stylish tooltips with jQuery.
The right way to include the jQuery library in WordPress.


