Official Plugins: A Change in The Roadmap

Posted on by

Barely six months ago, we announced that we were adopting three plugins developed chiefly at Microsoft – Templating, Data Link, and Globalization – as official plugins, to be developed in accordance with the standards of and supported by the jQuery project. Today, we’d like to take an opportunity to share what we’ve learned in the interim and announce a change in course for these and the rest of jQuery’s “Official Plugins.”

There never has been a dedicated jQuery team for supporting Official Plugins. Prior to the adoption of Microsoft’s contributions, the plugins that the jQuery project supported – Color, Easing, bgiframe, Mousewheel, Metadata, and Cookie – were dead-simple, effective plugins for achieving a particular utilitarian end. They required little maintenance, stalwartly serving with little fuss from version to version of jQuery core. In recent months, as we noticed an uptick in questions related to the three new plugins, we realized there was a disconnect. Though development on beta versions of the plugins continued at Microsoft, the planned jQuery sub-team that was meant to collaborate with and adopt Microsoft’s work never formed.

As demand has grown, based on the existence of the beta versions of the plugins as well as promises made in the posts, we’ve sensed the rumbles, the confusion, and the confused exclamations: “I thought templating was going to be in 1.5!” Because of your concerns and ours, we’ve decided to eliminate the notion of Official Plugins altogether. It’s a difference that’s both semantic and symbolic, but this is its material impact:

Many of the original supported jQuery plugins (Color, Easing, and Mousewheel) will continue to be supported and maintained by the jQuery Core Dev Team. The Metadata plugin will be deprecated, in favor of similar functionality provided by jQuery 1.4.3 and above. The Cookie plugin will continue to be maintained by Klaus Hartl.

The jQuery UI project will take ownership over plugins on which it has a current or future dependency: Templating, Globalization, and bgiframe. The jQuery UI team plans to begin work anew on templating and globalization, starting with the normal process for UI plugins: Collaborative development on a spec. While some may perceive this as a setback, given existing progress on the current jquery-tmpl plugin, it is really an opportunity for us to work in tandem with the community — Microsoft included — to develop an implementation that will be effective and flexible. The “official plugins” Microsoft has been developing have always been in a beta state, subject to change and with significant revisions planned for the Beta 2 release, but we recognize (and appreciate) those of you who have jumped in and started to experiment and use them in your applications. The UI team is still in the early planning stages for the Templating and Globalization plugins, and we invite you to visit the planning wiki and share your thoughts about development.

Microsoft will continue to develop and support the Data Link plugin independently, and will take ownership of hosting the documentation for the existing plugins.  In the short term, however, we’ll keep the documentation for these plugins on api.jquery.com, in order preserve a reference for anyone who needs it. For more on Microsoft’s plans for Data Link, please read their Official Plugins Update. We value Microsoft’s ongoing contribution to jQuery, providing developer time and financial support for a number of efforts, including the jQuery UI Grid and the jQuery conferences.

We realize that some of these details may seem in flux or merely organizational, but we know that it’s important to tell the community of changes like these as they’re happening so that you can make the best decisions for your applications as soon as possible. We hope you understand why we’ve had to make these shifts and encourage you to get involved and help us push these important projects along!

Addendum: So Why Weren’t Templates in 1.5?

Though we initially announced that the jquery-tmpl plugin would be part of jQuery Core in version 1.5, the plugin was, as it is today, still in the Beta 1 stage. Thus, when the time came last December to really evaluate new features for 1.5, it was not really considered ready for inclusion. Given what we’ve explained above, we hope it’s clear that we don’t plan to include templating directly in Core in the near future. The jQuery UI Templating plugin will be a standalone plugin with no dependencies on any other part of jQuery UI, and will become the only templating solution “officially” supported by the project, though jQuery will, of course, continue to work with any JavaScript templating engine that spits out good, old-fashioned strings of HTML.

jQuery 1.6 Beta 1 Released

Posted on by

We’re nearing the completion of jQuery 1.6! We want to get a beta out so that everyone can start testing the code in their applications, making sure that there are no major problems.

jQuery 1.6 Beta 1

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.6 Beta 1.

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.6 Beta 1 Change Log

The current change log of the 1.6 release.

  • #6782 Optimizes regex for innerHTML to allow more html snippets to use faster method.
  • #7328 When getting data- attributes, after-cap any embedded dashes per the W3C HTML5 specs.
  • #4146 Fixing inconsistency with width/height on inputs.
  • #7345 Adds support for explicit/relative string values in .css().
  • #7783 Fixes $.proxy to work like (and use) Function.prototype.bind
  • #8753 Allows special properties to be explicitly defined on jQuery.Event objects.
  • #7587 Bypass regexp filter on $.parseJSON and use native thrown exceptions if window.JSON.parse is available.
  • #8150 Fixes an issue where if removing the width and height attributes in IE6/7, setting to “” actually sets to 0 instead of auto.
  • #6562 Fixes an issue where if you have a DOM node with the ID of ‘target’ and you try and set a target it fails.
  • #8744 Makes sure script transport abort method actually removes the script tag even if readyState exists.
  • #8712 Bubble custom events to the window when they are triggered.
  • #8635 Fixes an uncaught exception in Firefox and removes unnecessary “manual” garbage collection.
  • #8568 Fixes an issue where live event callbacks can get out of order in the event liveHandler function.
  • #8417 Disables the JSONP replacement for $.ajax() JSON POST.
  • #8099 Fixes an issue where SPAN elements become block level on show().
  • #8593 Fixes an issue where DOM 0 event handlers are called twice when a separate handler is attached via jQuery
  • #8402 Fixes an issue where browsers implementing window.getComputedStyle completely ignore the “fixed property” in jQuery.css(). This makes the implementation of jQuery.cssProps more generic.
  • #8401 and #8403 .Fixes an issue where jQuery “bulldozes” other IE filters when setting opacity
  • #7071 Corrects an issue where accessing the ‘type’ property on VML elements fails on IE
  • #4321 Fixes an issue where $(“#”) returns “undefined” and an exception on Opera 9.6.
  • #7883 Just like .bind, .delegate (and .live) now accept false as a shortcut for function(){return false;}.
  • #2773 $.fn.is and $.fn.not now accept DOM elements and jQuery collections.
  • #8777 undelegate() now accepts custom namespaced events.
  • #3116 .attr() now also works with read only interfaces of the SVG specification.
  • #8732 Changes feature detection for focusin event support so that IE9 won’t have duplicate vents.
  • #7369 It is now possible to use .closest() on disconnected nodes with attributes.
  • #4366 Fixes an issue where $.each was failing when passed document.styleSheets in IE.
  • #7931 Corrects an issue where both the $.fn.scrollTop and $.fn.scrollLeft setters returned null when called on an empty jQuery object.
  • #8101 We now use requestAnimationFrame instead of setInterval for animations when it’s available
  • #8018 Fixes an issue where unsafe access to frameElement causes errors in crossdomain (i)frames
  • #6180 jQuery.clean no longer affects or modifies script tags which are not of the type text/javascript
  • #3685 Corrects a previous failure when selecting forms with an element named “name”
  • #8790 For cases where an event that is triggered is not native (ie. should not have inline handlers) we should bail out immediately for optimization purposes
  • #8814 Fixed a minor issue where in core.js, we don’t need to check for indexOf in the fallback inArray definition.
  • #7472 and #3113 Fixes an issue where if attribute names in forms share the same names as attribute types (eg, id, name etc) a conflict was being experienced
  • #7054 Ensures that the DOM element ref in an event handler is removed by cleanData to avoid an IE6/7/8 memory leak.
  • #8418 Fixes an issue where attr(“name”,”value”) is not working to set name attribute value in IE 7
  • #7996 Fixes a Safari 5.0.3 bug when trying to use jQuery’s .attr() on a script tag to access an attribute named “event”.
  • #8772 Fixes an issue where IE9 fails to gracefully handle the setting of unsupported input types such as ‘range’.
  • #4283 As part of the .attr() rewrite, false will remove Boolean attributes such as checked.
  • #8699 .attr() no longer returns -1 on missing attributes instead of undefined.
  • #6837 Corrects an issue where IE fails to return the correct value of the default/first item in the select after a form reset, instead returning an empty string
  • #4464 Fixes a bug where IE was unable to get the width attribute of detached IMG elements
  • #7485 Fixes an inconsistency where a selector doesn’t return all elements which have the attribute even if upon checking with the attr() method it returns a value.

jQuery 1.5.2 Released

Posted on by

jQuery 1.5.2 is now out! This is the second minor release on top of jQuery 1.5 and lands a number of fixes for bugs.

We would like to thank the following contributors that provided patches towards this release: azatoth, dmethvin, gnarf37, jaubourg, jboesch, jeresig, jessthrysoee, mathiasbynens, murz, rdworth, rwldrn, and timmywil.

We’d especially like to thank our bug triage team who assisted in narrowing down some of the important fixes needed for this release.

Downloading

As usual, we provide two copies of jQuery, one minified and one uncompressed (for debugging or reading).

You can feel free to include the above URLs directly into your site and you will get the full performance benefits of a quickly-loading jQuery.

Additionally you can also load the URLs directly from Microsoft and Google’s CDNs:

Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js
Google CDN: https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js

jQuery 1.5.2 Changelog

As this was a bug fix release there are no new features to report upon.

Closed Tickets

A full list of all bugs and tickets closed are as follows:

  • #6158 Fixed replaceWith from throwing errors on non existent elements.
  • #7340 We now use a single capturing handler to simulate bubbling focusin/focusout event on non-IE browsers. Allows native DOM methods to fire events other than the currently active one back into jQuery.
  • #8353 Reverted. Adds a catch block in resolveWith so that the finally block gets executed in IE7 and IE6. Fixes #8438 – an issue where the full functions stack wasn’t visible when debugging in Google Chrome.
  • #8380 Make it so that $(‘:text’) matches <input> as ‘type=text’ is the implied default.
  • #8421 Makes sure resolveWith can be called with only one parameter.
  • #8423 Never set X-Requested-With header automagically for cross-domain requests. Fixes an issue where all cross-domain ajax requests are pre-flighted and require extra additional options.
  • #8456 Fixed an issue where trigger(‘mouseover’) was no longer triggering mouseenter. We make sure parent is not null before crawling into its lap, so mouseenter is triggered on a mouseover event.
  • #8509 Makes URL regexp less overzealous and ensures it recognizes URL schemes which do not contain a conformant hierarchical structure (as per section 2.1.2 of http://www.ietf.org/rfc/rfc2718.txt). Also adds about: and adobe air’s app: and app-storage: to the list of local protocols and provides a failover in case document.location is illformed.
  • #8536 Introduced submodules to the jQuery repository on GitHub.
  • #8381 Fixed .is(“div”) to work on disconnected nodes in IE 9.
  • #8316 Fixed .offset() setter on fixed elements in WebKit.
  • #3333 Fixed incorrect .css(“marginRight”) in WebKit.
  • #8692 Fixed an issue where the arguments object sometimes ended up with undefined values outside the $.when method.
  • #8346 Fixed a compatibility issue with jQuery.camelCase() and IE9 prefixes.
  • #8203 Removed some unnecessary nulling of elements done in the name of an IE memory cleanup.
  • #8519 Prevent the core makefile from applying minification if nothing in the code has actually changed.
  • #8587 Fixed the jQuery-git.js cron-job to ensure that it is being regularly updated.
  • #8635 Corrected an issue with Firefox 3.6 where an issue with getComputedStyle() was resulting in uncaught exceptions.

jQuery 1.5.2 RC 1 Released

Posted on by

Progress is moving along well on the second update of jQuery 1.5 – we’re pleased to announce the release of its first release candidate! Barring any major bugs this should be the code that we end up shipping for jQuery 1.5.2 (which will be happening on March 31st).

jQuery 1.5.2 Release Candidate 1

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.5.2 RC 1.

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.5.2 RC 1 Change Log

The current change log of the 1.5.2 release.

  • #6158 Fixed replaceWith from throwing errors on non existant elements.
  • #7340 We now use a single capturing handler to simulate bubbling focusin/focusout event on non-IE browsers. Allows native DOM methods to fire events other than the currently active one back into jQuery.
  • #8353 Reverted. Adds a catch block in resolveWith so that the finally block gets executed in IE7 and IE6. Fixes #8438 – an issue where the full functions stack wasn’t visible when debugging in Google Chrome.
  • #8380 Make it so that $(‘:text’) matches <input> as ‘type=text’ is the implied default.
  • #8421 Makes sure resolveWith can be called with only one parameter.
  • #8423 Never set X-Requested-With header automagically for cross-domain requests. Fixes an issue where all cross-domain ajax requests are pre-flighted and require extra additional options.
  • #8456 Fixed an issue where trigger(‘mouseover’) was no longer triggering mouseenter. We make sure parent is not null before crawling into its lap, so mouseenter is triggered on a mouseover event.
  • #8509 Makes URL regexp less overzealous and ensures it recognizes URL schemes which do not contain a conformant hierarchical structure (as per section 2.1.2 of #http://www.ietf.org/rfc/rfc2718.txt). Also adds about: and adobe air’s app: and app-storage: to the list of local protocols and provides a failover in case document.location is illformed.
  • #8536 Introduced submodules to the jQuery repository on GitHub.
  • #8381 Fixed .is(“div”) to work on disconnected nodes in IE 9.
  • #8316 Fixed .offset() setter on fixed elements in WebKit.
  • #3333 Fixed incorrect .css(“marginRight”) in WebKit.

jQuery Conference 2011: SF Bay Area – Speakers and Talks

Posted on by

Speakers

We currently have 28 speakers and trainers listed on the speakers page of the events site for the San Francisco Bay Area Conference on April 16-17, 2011. Featuring speakers like John Resig, Richard D. Worth, Todd Parker, Steve Souders, Nicholas Zakas, Garann Means, Darcy Clarke, Estelle Weyl, Matt Kelly and many more.

Make sure you head over to the events site to learn all about our speakers.

Talks

We also have the schedule posted with 25 out of the 28 talks filled. We’ll be filling those remaining slots in the upcoming week (check our twitter account for the latest).

Here are a few of the talks you’ll find this year:

  • jQuery Keynote
  • jQuery UI Keynote
  • jQuery Mobile
  • Deferreds – Putting Laziness to Work
  • Integrating Code Quality tools into your jQuery Development Workflow
  • Filling the HTML5 & CSS3 Gaps with Polyfills and Shims
  • Harnessing jQuery Templates and jQuery Data Link, to build dynamic data-driven browser apps
  • Presentational jQuery
  • The jQuery UI Widget Factory: WAT?
  • Mobile Performance
  • Plus many more

Make sure to click on the talk titles and speakers names to read the associated abstracts and bios.

Pre-conference Training

Don’t forget about our training classes we are offering on April 15th. Find out more information.

Registration

Tickets are selling fast so make sure you get your ticket today. Head over to our Register page to find out how you can be a part of the next jQuery Conference.

jQuery Conference 2011 – Preconference Training

Posted on by

What started, with great demand, at the San Francisco Bay Area conference last year and has continued on for the conferences thereafter is our preconference training.  We are once again offering preconference training on April 15th for the jQuery Conference 2011: San Francisco Bay Area but for the first time offering two separate classes, beginner and advanced.


Introduction to jQuery given by Bocoup



BocoupBocoup gave a bunch of advanced and hack day training classes in Boston last year in addition to the preconference Introduction to jQuery class, which also was greatly attended.  We are very happy to announce that Bocoup will once again be giving the Introduction to jQuery class.

From Bocoup.com:

The training will be given by Ben Alman (the jQuery plugin guy) and Adam Sontag (the yayQuery guy), and has been designed to give attendees a basic understanding of the jQuery API, development techniques, and best practices. In addition, attendees will learn about both jQuery UI and jQuery Mobile, and will be given an introduction to extending jQuery with custom plugins.

As usual there is a limited number of tickets for this training class and they are selling fast.  You’ll need to hurry if you want a seat for this class.

Tickets for Beginner training are $299 (plus Eventbright fees) and all proceeds go directly to the jQuery Project.

Please make sure to thank Bocoup for their support.


Advanced jQuery given by Jupiter JavaScript Consulting



BocoupNew this year is an additional track for Advanced jQuery and we are happy to have Jupiter JavaScript Consulting give this class. JuptierJS builds and maintains JavaScriptMVC and has plenty of experience building complex jQuery apps.

From jupiterjs.com:

The following is a rough list of topics we’d like to cover.  I list them here quasi hierarchically.  But in reality, we’ll cover most of these topics throughout the day.

  • Application Design
  • Thin Server Architecture
  • State Management
  • History Enabled Websites
  • Widget Design
  • Event Oriented Architecture
  • Custom Events
  • Pub-Sub
  • Event Delegation
  • 1-2-3 Layers / Separation of Concerns
  • Organizing Ajax and the Domain Model
  • Deffereds
  • Ajax Fixtures
  • Client Side Templates
  • The Perfect jQuery Plugin
  • Prototypal Inheritance
  • File/Folder Organization
  • Dependency Management
  • Production Builds
  • Testing
  • QUnit, Jasmine, Selenium, FuncUnit, Waitr, etc
  • High Performance jQuery
  • Even More Design Reviews

Yes, that’s a whole lot to cover! So come and be prepared to have your mind blown (and let me know if there’s something else you’d like to learn).

As usual there is a limited number of tickets for this training class and they are selling fast.  You’ll need to hurry if you want a seat for this class.

Tickets for Advanced training are $399 (plus Eventbright fees) and all proceeds go directly to the jQuery Project.

Please make sure to thank Jupiter JavaScript Consulting for their support.

jQuery 1.5.1 Released

Posted on by

jQuery 1.5.1 is now out! This is the first minor release on top of jQuery 1.5 and lands a number of fixes for bugs.

We would like to thank the following contributors that provided patches towards this release: antonkovalyov, csnover, danheberden, davidmurdoch, dmethvin, gnarf37, jaubourg, jeresig, jitter, jrburke, lrbabe, mathiasbynens, rwldrn, SlexAxton, and voxwerk.

We’d especially like to thank our bug triage team who assisted in narrowing down some of the important fixes needed for this release.

Downloading

As usual, we provide two copies of jQuery, one minified and one uncompressed (for debugging or reading).

You can feel free to include the above URLs directly into your site and you will get the full performance benefits of a quickly-loading jQuery.

Additionally you can also load the URLs directly from Microsoft and Google’s CDNs:

Microsoft CDN: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js

Google CDN: https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js

1.6 Roadmap Meeting

The core jQuery dev team is now taking proposals for changes to land in jQuery 1.6. Right now we’re shooting to release jQuery 1.6 late April/early May and will be meeting to discuss the submitted proposals at Noon EST on March 7th (the meeting will be in #jquery-meeting on irc.freenode.net).

Please submit your proposals through the following form in advance of the March 7th meeting.

jQuery 1.5.1 Changelog

jQuery 1.5.1 Test Swarm Results

API Documentation: jQuery 1.5.1 API Documentation

As this was a bug fix release there are no new features to report upon. The only changes are as follows:

jQuery now supports Internet Explorer 9 as a top level browser. All known bugs have been fixed and/or been reported to the IE team for resolution in the final release.

Three new options were added to jQuery.ajax():

  1. isLocal: Allow the current environment to be recognized as “local,” (e.g. the filesystem), even if jQuery does not recognize it as such by default. The following protocols are currently recognized as local: file, *-extension, and widget. If the isLocal setting needs modification, it is recommended to do so once in the $.ajaxSetup() method.
  2. mimeType: A mime type to override the XHR mime type.
  3. xhrFields A map of fieldName-fieldValue pairs to set on the native XHR object. For example, you can use it to set withCredentials to true for cross-domain requests if needed.


Closed Tickets

A full list of all bugs and tickets closed are as follows:

  • #2551 Make sure .val() works after form.reset() in IE
  • #4537 Make sure .clone(true) correctly clones namespaced events
  • #4966 Don’t add “px” to unit-less properties when animating them
  • #6774 Make sure we only access parentNode if it’s available. Fixes an issue where after an option tag has been detached, an elem.parentNode error would be thrown.
  • #6911Prevent action on disabled elements, both triggering and bound via .live()
  • #7531 Fix again for IE9RC. Enhances ajaxSetup so that it can take an optional target option, in which case target will be updated instead of ajaxSettings. That way, fields that shouldn’t be deep extended can be listed and dealt with in one place. jQuery.ajax now makes use of ajaxSetup with target to create its internal settings object
  • #7568 Follow-up fix for #5862. Objects with a length property weren’t serialized properly by jQuery.param
  • #7653 Changes regexp to detect local protocol so that it will accept any protocol finishing by -extension
  • #7668 Sizzle and jQuery QUnit tests are out of sync
  • #7912 This change makes .cur() more .cssHooks friendly. .cur() now returns the unmodified value by .css() if it isn’t a number, number-alike or a value that needs a fallback to 0.
  • #7922 Fixed an issue where live(‘click’) doesn’t fire when live(‘submit’) is bound first in IE
  • #7945 Make jQuery.param() serialize plain objects with a property named jquery correctly
  • #8033 jQuery 1.4.4+ fails to load on pages with old Prototype (<= 1.5) or Current Prototype + Scriptaculous in IE
  • #8039 Selectors with HTML5 input types not work in IE6/7
  • #8052 Update jQuery.support.noCloneEvent test to function properly in IE9
  • #8095 Properly handles the case where browser cache needs to be bypassed while server-side logic still delivers proper 304 responses. Unit test added
  • #8098 Use the fast document.head when available
  • #8099 Always restore to correct display value based on element’s expected default display
  • #8107 Fix argument handling for $.ajax for multiple method signatues and add test case
  • #8108Temporary fix for jQuery metadata being exposed on plain JS objects when serializing with JSON.stringify to avoid compatibility-breaking changes. A proper fix for this will be landed in 1.6
  • #8115 Renames all references to jXHR with jqXHR in the code (like was done in the doc)
  • #8123 The default for .clone() is to not clone any events
  • #8125 Status is set to 200 for requests with status 0 when location.protocol if “file:”. Added test/localfile.html to control it works
  • #8129 Fix cloning multiple selected options in IE8
  • #8135 Makes sure any exception thrown by Firefox when trying to access an XMLHttpRequest property when a network error occured is caught and notified as an error. Added test/networkerror.html to test the behavior
  • #8138 Access to document.location is made only once at load time and if it fails (throwing an exception in IE when document.domain is already set), we use the href of an A element instead
  • #8145 Added readyWait tests
  • #8146 introducing the xhrFields option with is a map of fieldName/fieldValue to set on the native xhr. Can be used to set withCredentials to true for cross-domain requests if needed
  • #8152 applying the same special cases for protocol “chrome-extension:” as were for “file:” (needs tests). Re-organizes and fixes the handling of special cases for HTTP status code in the xhr transport
  • #8177 XHR transport now considers 304 Not Modified responses as 200 OK if no conditional request header was provided (as per the XMLHttpRequest specification)
  • #8193 Fixes abort in prefilter. No global event will be fired in that case even if the global option is set to true. Unit test added
  • #8198 Remove unnecessary “script.type = text/javascript;”
  • #8200 Unexpose $.support._scriptEval as it’s not needed. Use a private var instead
  • #8209 Make sure that mousing over Chrome “internal div” doesn’t trigger a mouseleave
  • #8219 Introduces the mimeType option to override content-type header in conversion (and in native xhr when possible). Adds companion overrideMimeType method on jqXHR object (it simply sets the option)
  • #8220 Remove backslashes from tag name filter
  • #8245 Ajax now ensures header names are capitalized so that non-compliant xhr implementations don’t override them
  • #8250 ajax does not work in opera 10 widgets
  • #8277 Sets data to undefined rather than null when it is not provided in ajax helpers so that it won’t revent data set in ajaxSettings from being used.
  • #8297 Make sure response headers with empty values are handled properly and do not prevent proper parsing of the entire response headers string.
  • #8353 Adds a catch block in resolveWith so that the finally block gets executed in IE7 and IE6.
  • #8365 Make sure that IE 9 still clones attributes.

jQuery Conference 2011: San Francisco Bay Area Conference Announced

Posted on by

The jQuery Project is very excited to announce the dates for our next San Francisco Bay Area conference; after a fantastic event in 2010, we’ll be returning to the Microsoft Silicon Valley Research Center in Mountain View, California on April 16th and 17th, 2011.

The San Francisco Bay Area conference is the first of two events planned by the jQuery Project in 2011. We’re also in the early stages of planning an event for the East Coast for later this year (we’ll post details as they become available).

Registration is now open! Regularly priced tickets are $299, and for a limited time, there are early-bird tickets available at a $50 discount (early-bird tickets available until March 2nd, or while supplies last).

For more details on the what, when and who, head over to the events site.

In addition to two days of jQuery sessions, we’ll once again be offering a day of jQuery training, on the Friday before the conference. In response to popular demand last year, we’ll be offering two training tracks — Beginner jQuery and Advanced. The training is generoursly offered by our friends at JupiterIT and Bocoup, and all proceeds go directly to funding the future growth of the jQuery project. Keep an eye on this blog and the events site for specific training agendas, coming soon.

Want to contribute?

Interested in speaking? We’re still filling out the roster, and we’d love to have you! Our Call for Papers is live here, and submissions are already starting to roll in. Keep an eye on the jQuery Blog for agenda updates as we fill the slots.

Lastly, if you or your company would like to help out by sponsoring the event, send an email to sponsorship@jquery.com. Every little bit helps, and we’d love to work with you and your team!

That’s it for now folks — looking forward to seeing you all in sunny California!

jQuery 1.5.1 RC 1 Released

Posted on by

We’re nearing the first update to jQuery 1.5 – and we’re pleased to announce the release of the first release candidate! Barring any major bugs this should be the code that we end up shipping for jQuery 1.5.1 (which will be happening on February 24th).

jQuery 1.5.1 Release Candidate 1

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.5.1 RC 1.

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.5.1 RC 1 Change Log

The current change log of the 1.5.1 release.

  • #2551 Make sure .val() works after form.reset() in IE
  • #4537 Make sure .clone(true) correctly clones namespaced events
  • #4966 Don’t add “px” to unit-less properties when animating them
  • #6774 Make sure we only access parentNode if it’s available. Fixes an issue where after an option tag has been detached, an elem.parentNode error would be thrown.
  • #7531 Fix again for IE9RC. Enhances ajaxSetup so that it can take an optional target option, in which case target will be updated instead of ajaxSettings. That way, fields that shouldn’t be deep extended can be listed and dealt with in one place. jQuery.ajax now makes use of ajaxSetup with target to create its internal settings object
  • #7568 Follow-up fix for #5862. Objects with a length property weren’t serialized properly by jQuery.param
  • #7653 Changes regexp to detect local protocol so that it will accept any protocol finishing by -extension
  • #7668 Sizzle and jQuery QUnit tests are out of sync
  • #7912 This change makes .cur() more .cssHooks friendly. .cur() now returns the unmodified value by .css() if it isn’t a number, number-alike or a value that needs a fallback to 0.
  • #7922 Fixed an issue where live(‘click’) doesn’t fire when live(‘submit’) is bound first in IE
  • #7945 Make jQuery.param() serialize plain objects with a property named jquery correctly
  • #8033 jQuery 1.4.4+ fails to load on pages with old Prototype (<= 1.5) or Current Prototype + Scriptaculous in IE
  • #8039 Selectors with HTML5 input types not work in IE6/7
  • #8052 Update jQuery.support.noCloneEvent test to function properly in IE9
  • #8095 Properly handles the case where browser cache needs to be bypassed while server-side logic still delivers proper 304 responses. Unit test added
  • #8098 Use the fast document.head when available
  • #8099 Always restore to correct display value based on element’s expected default display
  • #8107 Fix argument handling for $.ajax for multiple method signatues and add test case
  • #8108Temporary fix for jQuery metadata being exposed on plain JS objects when serializing with JSON.stringify to avoid compatibility-breaking changes. A proper fix for this will be landed in 1.6
  • #8115 Renames all references to jXHR with jqXHR in the code (like was done in the doc)
  • #8123 The default for .clone() is to not clone any events
  • #8125 Status is set to 200 for requests with status 0 when location.protocol if “file:”. Added test/localfile.html to control it works
  • #8129 Fix cloning multiple selected options in IE8
  • #8135 Makes sure any exception thrown by Firefox when trying to access an XMLHttpRequest property when a network error occured is caught and notified as an error. Added test/networkerror.html to test the behavior
  • #8138 Access to document.location is made only once at load time and if it fails (throwing an exception in IE when document.domain is already set), we use the href of an A element instead
  • #8145 Added readyWait tests
  • #8146 introducing the xhrFields option with is a map of fieldName/fieldValue to set on the native xhr. Can be used to set withCredentials to true for cross-domain requests if needed
  • #8152 applying the same special cases for protocol “chrome-extension:” as were for “file:” (needs tests). Re-organizes and fixes the handling of special cases for HTTP status code in the xhr transport
  • #8177 XHR transport now considers 304 Not Modified responses as 200 OK if no conditional request header was provided (as per the XMLHttpRequest specification)
  • #8193 Fixes abort in prefilter. No global event will be fired in that case even if the global option is set to true. Unit test added
  • #8198 Remove unnecessary “script.type = text/javascript;”
  • #8200 Unexpose $.support._scriptEval as it’s not needed. Use a private var instead
  • #8209 Make sure that mousing over Chrome “internal div” doesn’t trigger a mouseleave
  • #8219 Introduces the mimeType option to override content-type header in conversion (and in native xhr when possible). Adds companion overrideMimeType method on jqXHR object (it simply sets the option)
  • #8220 Remove backslashes from tag name filter
  • #8245 Ajax now ensures header names are capitalized so that non-compliant xhr implementations don’t override them
  • #8250 ajax does not work in opera 10 widgets
  • #8277 Sets data to undefined rather than null when it is not provided in ajax helpers so that it won’t revent data set in ajaxSettings from being used.
  • #8297 Make sure response headers with empty values are handled properly and do not prevent proper parsing of the entire response headers string.

New Releases, Videos & A Sneak Peek At The jQuery UI Grid

Posted on by

In today’s post we’ll be presenting updates on both jQuery Core and UI as well as highlighting any upcoming training events being held and articles or videos which we think might be useful to read. We would appreciate your comments and feedback on them!

Contents

 

jQuery 1.5 Was Released

This week, the core team released jQuery 1.5 to celebrate the fifth birthday of the library. This included many performance improvements and bug fixes as well as a major re-write of the Ajax module which now comes with deferred callback management. Core also introduced a new feature called jQuery.sub which allows for new copies of jQuery to be created where properties and methods can be safely modified without affecting the global jQuery object.

If you haven’t had a chance to read or play around with these new features as yet, community member Eric Hynds wrote an in-depth tutorial on using Deferreds which you may be interested in. I also recorded a quick screencast explaining how to use jQuery.sub.

jQuery 1.5 has already begun to be used in the wild and you may also be interested in taking a look at jQuery templating author Boris Moore’s new script loader which also makes use of deferreds.

As always, we appreciate any and all community feedback on the 1.5 release and if you discover bugs or issues which you would like to report, you can do so by following our bug submission guidelines. We’ve already made a number of fixes to 1.5 (which can be tested in jQuery-Git) and we also welcome any feedback on that version as well.

Remember that up-to-date information on all our future releases (including jQuery 1.5.1) can be found on our roadmap.

 

Unleashing the Grid – A New jQuery UI Grid

The jQuery UI Team have announced an exciting new project called the jQuery UI Grid, where they’ll be building a feature rich, fast grid widget for enhancing table data with linking, sorting, paging and inline editing amongst other features.

There have been quite a few attempts outside of the project to create such widgets before, however they’ve often suffered from poor support, documentation or a lack of extensibility – the new UI grid project aims to solve these issues by providing a project-supported component that will be both modular and continually updated.

Speaking to Richard D. Worth, here’s a progress update on where the team are with the Grid at the moment:

We are nearing completion of development on Stage 1 of the project, which encompasses the creation of a generic data model, data type parsing, and markup. This stage will culminate in a “zero feature grid,” an enhanced HTML table that supports the jQuery UI CSS Framework and serves as a base for other grid features.

Read Richard’s full blog post on the new Grid.

 

jQuery Conference Videos Are Now Available Online

If you weren’t able to attend the jQuery Conference in Boston last year (with speakers such as John Resig and Karl Swedberg in attendance) we’ve got some great news – almost all of the talks are now available to watch online (either on your desktop or mobile device) via our conference site. You can also pick-up the slides mentioned in the videos by clicking on any individual speaker’s talk.

 

Upcoming jQuery Training Events

Group training can be an excellent way to improve your jQuery skills and Ben Alman over at Bocoup (a jQuery sponsor) would like to make a special announcement about upcoming events they’ll be holding in March and July.

Bocoup currently has two 3-Day Comprehensive jQuery Training sessions scheduled. As always, sessions will be held at The Bocoup Loft in Boston, and 10% of profits will go directly to the jQuery Foundation. Be sure to sign up now, since class sizes are limited to twelve people. Read more about our curriculum and trainers here:

March 2nd – 4th, 2011 and July 13th – 15th, 2011

jQuery Team member Karl Swedberg will also be holding a hands-on training event between March 1st-3rd in Holland, Michigan.

Karl will painlessly walk you through jQuery’s principles and show you how to make use of the library in your everyday coding. Karl will also be giving away free copies of his Learning jQuery book to all attendees.

For more information or to register, check out the IdeaFoundry site.

 

A New Episode Of YayQuery

For fans of the YayQuery podcast, Paul Irish (jQuery core team), Adam Sontag (jQuery UI team) and community members Alex Sexton and Rebecca Murphey are back with a new episode of their video podcast. In their latest episode, they discuss the new Deferreds features with one of the main developers behind the Ajax re-write (Julian Aubourg) and also look at other new developments in the world of jQuery and JavaScript.

Watch or listen to the podcast at YayQuery.com.

And that’s it!. If you have any interesting jQuery articles or posts which you think would be beneficial for the community to read, please feel free to mention them in the comments. We’ll be back with another Community Update in a few weeks with more news on the next version of jQuery.

Until then, good luck with all your projects!.