jQuery 1.7 RC2 Released

Posted on by

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!

HERE LIE THE
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

  • #10420: MouseWheel
  • #10553: Further reduction of minimal license header

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

jQuery 1.7 RC1 Released

Posted on by

The team is getting closer to jQuery 1.7, and today we’re putting out a release candidate. The full list of fixes and features can be found below. We urge everyone to start testing this code in their applications, so we can make sure that there are no major problems before the final release.

Testing couldn’t be simpler, you can get the code from the jQuery CDN:

Please help us by dropping that code into your existing application. If you see something, say something. File a bug and mention that you’re testing against jQuery 1.7 RC1. If there’s a problem we want to fix it.

In the meantime, we’re working on the documentation and release notes to make sure your transition to 1.7 goes smoothly. Stay tuned!

jQuery 1.7 RC 1 Change Log

The current change log of the 1.7 RC 1 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
  • #10416: defaultDisplay returns block instead of table-row for a tr in FF
  • #10445: Setting queue to true causes an error
  • #10497: .stop should allow choosing which queue to stop

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.

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

  • #10553: Further reduction of minimal license header

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

Traversing

  • #10449: Function $(“#id”).closest(“.class”) returns element $(“#id”) itself if it has .class

jQuery 1.7 Beta 2 Released

Posted on by

Hot off the momentum of the jQuery Conference in Boston earlier this month, and based on the community’s valuable feedback, we’re releasing a new beta that incorporates further fixes and improves stability. The full list of fixes and features can be found below. We urge everyone to start testing this code in their applications, so we can make sure that there are no major problems before the final release.

You can get the code from the jQuery CDN:

Please help us by dropping that code into your existing application. If you see something, say something. File a bug and mention that you’re testing against jQuery 1.7 Beta 2. If there’s a problem we want to fix it!

jQuery 1.7 Beta 2 Change Log

The current change log of the 1.7 Beta 2 release:

Ajax

  • #9399: Deprecate jqXHR.success and jqXHR.error

Attributes

  • #5479: removeAttr: remove multiple attributes
  • #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’);

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
  • #10416: defaultDisplay returns block instead of table-row for a tr in FF
  • #10445: Setting queue to true causes an error

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()

Manipulation

  • #6782: carefully allow more strings to use innerHTML
  • #7037: Duplicate mouseover and mouseout events added to cloned element.

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

Support

  • #5145: jQuery.support.opacity = false in the Chrome browser
  • #6809: Add jQuery.support.fixedPosition

Traversing

  • #10449: Function $(“#id”).closest(“.class”) returns element $(“#id”) itself if it has .class

jQuery 1.7 Beta 1 Released

Posted on by

If you hadn’t heard, jQuery Conference 2011 is taking place in Boston later this week. We’ve put together a little something we like to call jQuery 1.7 Beta 1 that we’ll be talking a lot more about at the conference. It’s got a lovely bunch of new features and significant bug fixes–more than 50 of them at last count.

You can get the beta from the jQuery CDN:

Please help us by dropping this code into your existing application and letting us know if anything no longer works. Please file a bug ticket and be sure to mention that you’re testing against jQuery 1.7 BETA 1.

Also be sure to explore all the new features and see if your favorite pet-peeve bug has been fixed. If you wait until the final release to do your testing it will be too late!

As always, 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!

Oh, you probably want to know what changed, right? Addy Osmani has made a great start with his recent post, so let’s cover the stuff that isn’t on his list.

New Event APIs: .on() and .off()

Over time, jQuery has evolved three ways to attach events to elements: .bind() , .live(), and .delegate(). Underneath it all, though, the three event APIs call the browser’s event system; that can lead to surprising interactions. For example, $(document).unbind("click") will remove all .live("click", ...) events, since those delegated events are attached to document. (This is also why you should use event namespaces.)

Our current event APIs aren’t going away soon, but to address the inconsistencies we’ve introduced a new and simple pair of event methods that can do the work of all three:

    $(elems).on(events, selector, data, fn);
    $(elems).off(events, selector, fn);

If a selector is provided, it’s a delegated event; otherwise it’s directly bound. All the features of the old APIs are there; for example events can be a space-separated string of event names and/or namespaces, or it can be an object where the keys are events and the values are event handler functions. Here are some examples of how the old methods map into the new ones:

Old API New API
$(elems).bind(events, fn) $(elems).on(events, fn)
$(elems).bind(events, { mydata: 42 }, fn) $(elems).on(events, { mydata: 42 }, fn)
$(elems).unbind(events, fn) $(elems).off(events, fn)
$(elems).delegate(selector, events, fn) $(elems).on(events, selector, fn)
$(elems).undelegate(selector, events, fn) $(elems).off(events, selector, fn)
$(selector).live(events, fn) $(document).on(events, selector, fn)
$(selector).die(events, fn) $(document).off(events, selector, fn)

Form Change and Submit Events in IE 6/7/8

These old Internet Explorer versions are likely to be haunting us for some time, so we’ve spent a while trying to improve their behavior. Event delivery performance has been greatly improved for them, but the biggest change is that we are using a different approach to fix their non-bubbling and broken form events. As a result we were able to greatly simplify and shorten the special events code. These events should work without any problems–even better than before, since we closed about a half-dozen related bugs–but please keep your eyes open for any unusual behavior.

Animation Improvements

Before version 1.7, if you stopped an animation before it completed it could create a situation where the element being animated would never return to its full size; it would essentially be stuck at the height that it was when the animation was stopped. We’ve fixed that by remembering the original dimensions before the animation starts so that they can be used later. This eliminates a major annoyance in using certain animations, particularly toggling ones.

.removeData() Enhancements

Addy mentioned this one as well, but the .removeData() API now lets you pass either a space-separated string of names or an array of names to be removed. Since spaces were previously allowed in data names, the code first checks for the exact name as you specified it before splitting the string on spaces. That way, no existing code should break as a result of this enhancement.

jQuery 1.7 BETA 1 Change Log

Here is a complete list of changes made for the 1.7 BETA 1 release.

Ajax

  • #9399: Deprecate jqXHR.success and jqXHR.error

Attributes

  • #5479: removeAttr: remove multiple attributes
  • #10278: checkboxEl.attr(‘checked’) returns stale value after checkboxEl.click()

Core

  • #6485: Solution for HTML5 in IE
  • #7102: Register jQuery as a CommonjS async module
  • #9453: $.inArray does not support fromIndex

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

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

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
  • #6705: focus() causes focus event to be handled twice in IE8
  • #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

Manipulation

  • #6782: carefully allow more strings to use innerHTML
  • #7037: Duplicate mouseover and mouseout events added to cloned element.

Selector

  • #5637: Boolean (and Empty) Attribute Selectors Fail
  • #7128: attribute selector is inconsistent between qSA and Sizzle due to use of DOM properties
  • #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

Support

  • #6809: Add jQuery.support.fixedPosition

jQuery 1.6.4 RC1 released

Posted on by

jQuery 1.6.4 will be released soon, and we need your help with this release candidate to find any remaining bugs. We’re putting out a new version to address a few last-minute bugs that crept into the 1.6.3 release. With version 1.7 coming next month, we felt it was important to fix these bugs and finalize the 1.6.x line before making more extensive changes and feature additions.

Feel free to do your testing by including either one of these files (one minified and one uncompressed). If you find any important differences from 1.6.3, please file a bug as soon as possible and be sure to mention that you’re testing against jQuery 1.6.4 RC1. Our preferred venue for test cases is jsFiddle; you can just use the “jQuery (edge)” selection there.

jQuery 1.6.4 RC1 Change Log

The current change log of the 1.6.4 release:

Data

  • #10194: Data attribute names with single dash-surrounded letters cannot be accessed by the camel-case name

Event

  • #10208: $(“form”).live(“submit”, fn) not fired from <button type=”submit”> in IE8

Support

  • #10197: Bug with mime-type application/xhtml+xml in jquery 1.6.3

Please do file a bug report with a test case as soon as possible if you find problems, as described above. Blog comments or Twitter aren’t helpful bug reports!

jQuery 1.6.3 RC1 Released

Posted on by

jQuery 1.6.3 is almost ready to roll! We need your help with this release candidate to be sure we’ve got everything right.

Feel free to do your testing by including either one of these files (one minified and one uncompressed). Our preferred venue for test cases is jsFiddle; you can just use the “jQuery (edge)” selection there. If you need to report a bug and cannot use jsFiddle, please use the uncompressed version with your test case.

Please test this release with your most treasured code. If you find any important differences from 1.6.2, please file a bug as soon as possible and be sure to mention that you’re testing against jQuery 1.6.3 RC1.

If you’re making a quantum leap from a much older version of jQuery, it’s possible that the differences you find are due to documented behavior changes introduced in a major-point release. Check your code with the released 1.6.2 version first to be sure the problem only exists in 1.6.3 RC1.

Highlights

Fix an XSS attack vector: User ma.la reported a common pattern that many sites are using to select elements using location.hash that allows someone to inject script into the page. This practice seemed widespread enough that we decided to modify the selector recognition to prevent script injection for the most common case. Any string passed to $() cannot contain HTML tags (and thus no script) if it has a “#” character preceding them. See the ticket linked above for more information and a test case.

No more animation “worm holes”: We had high hopes for the browser’s requestAnimationFrame API when we added support into version 1.6. However, one of the highest-volume complaints we’ve received since then relates to the way requestAnimationFrame acts when a tab is not visible. All the animations initiated when the tab is invisible “stack” and are not executed until the tab is brought back into focus. Then they all animate at warp speed! We’ve removed support for this API (which has no impact on the way you call jQuery’s animation features) and plan to incorporate it into a future version of jQuery.

Better handling of HTML5 data attribute names: The $().data() API serves double-duty, handling data for the internal use of jQuery and plugins in addition to reading initial values of HTML5 data- attributes. We’ve improved the ability to use HTML5 conventions such as converting camel-case to camelCase when needed. Remember, however, that the $().data() API only reads the HTML5 data- attributes initially, and does not keep subsequent data changes in sync with attributes for performance reasons. To update the actual attributes in the HTML markup, use .attr().

jQuery 1.6.3 Change Log

The current change log of the 1.6.3 release:

Ajax

  • #9255: jQuery.parseXML error handling does not work in webkit browsers
  • #9854: Pass statusText through instead of “normalizing” it
  • #9887: jQuery.ajaxSetup may cause unnecessary memory usage
  • #9970: Typo in ajax.js: status should be jqXHR.status?
  • #10098: Encode comment-like Accept headers to avoid mobile carrier mangling

Attributes

  • #9630: foo.contents().hasClass() returns incorrect value
  • #9699: removeAttr(‘style’) does not consistently remove the style attribute in webkit
  • #9719: removeAttr(‘disabled’) doesn’t change input’s color on IE6
  • #9979: .prop(‘tabIndex’) returns inconsistent results for elements that have not yet set tabIndex
  • #9980: Simplify the attr code by using getAttributeNode for everything in IE6/7

Build

  • #9988: Minimal License Header in compressed jQuery

Core

  • #9521: XSS with $(location.hash) and $(#) is needed?
  • #9897: try-catch isPlainObject detection
  • #10076: $.inArray crashes IE6 and Chrome if second argument is `null` or `undefined`

CSS

  • #6652: Remove filter:alpha(opacity=100) after animation
  • #9572: Support -ms-transform in .css() method
  • #10021: Can’t add negative numbers using the relative-value syntax with .css() and .animate()

Data

  • #8235: jQuery.data throws a script error in certain circumstances
  • #9318: HTML5 data attributes has strange behaviour with if attribute names contain numbers
  • #9413: $.fn.removeData does not remove data with a dash in a name
  • #9779: Allow non-null|undefined evaluation of data property values
  • #9794: jQuery.fn.data() correctly handle access to arbitrary data property values
  • #10016: Cannot retrieve “false-y” values under key names with dashes using jQuery.data method
  • #10080: unload from frame’s window breaks in IE8

Dimensions

  • #10123: .width() can return a float in Firefox 6

Effects

  • #9381: Animations halt when the browser is out of focus due to requestAnimationFrame
  • #9678: setInterval cleared by animation

Event

  • #7071: Accessing the ‘type’ property on VML elements fails on IE during submit special handler

Manipulation

  • #9587: Cloning a div with an object causes error in IE8

Support

  • #9634: Visible “t” character in upper left corner during support.js init
  • #9823: IE 8 crashes when using background-image on BODY in css
  • #9964: test/support.js module strictEqual typo
  • #10029: $.support.scriptEval removed, but still included in documentation

Please do file a bug report with a test case as soon as possible if you find problems, as described above. Blog comments or Twitter aren’t helpful bug reports!

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!.

jQuery Community Updates For November 2010

Posted on by

Welcome to the November jQuery Community Update.

We hope you enjoyed yesterday’s special spotlight on the jQuery Bug Triage team. In this month’s community update we’ll be looking at updates from the jQuery team, important announcements and a new spotlight section where we highlight some of the jQuery articles that we think you’d find useful. Let’s dive right in!

jQuery won the Packt Publishing award for best Open Source JavaScript Library

We are pleased to announce that this month jQuery won the Open Source JavaScript Libraries category in the 2010 Open Source Awards. On behalf of the entire jQuery Team we would like to express our thanks to the community of designers and developers that use jQuery daily and felt the urge to vote for jQuery as their favorite JavaScript library.

We would also like to thank Packt Publishing for the award itself. We’ll be using this prize to further the development of the jQuery Project.

[Read More]

Adobe Embraces jQuery


You may have heard that jQuery creator John Resig was at Adobe MAX last month to help announce that Adobe is embracing jQuery in a few of its applications. One of the exciting developments that were announced included jQuery Mobile support from inside Dreamweaver and also that Adobe would be using jQuery as the basis of for the animations generated using their Edge tool.

[Read More]

New jQuery UI and Mobile Releases For November

In case you missed it, jQuery UI 1.8.6 was released earlier this month. Along with official support for jQuery 1.4.3, this update included bug fixes and enhancements for jQuery UI Core, the Widget Factory, the Mouse widget and the Position utility as well as the Accordion, Autocomplete, Button, Datepicker, Dialog, Progressbar, and Tabs widgets and you should definitely check it out. For more about this release check out the following link:

http://blog.jqueryui.com/2010/11/jquery-ui-1-8-6/

Our third milestone release for jQuery UI 1.9 is also now out. This features the new Spinner widget (currently in active development) and also includes significant updates to the Tooltip and Menu widgets. Milestone releases make it easier for developers to try out new widgets before they’ve been finalized so that we can get your feedback on them earlier on in the development lifecycle. To read more on this see:

http://blog.jqueryui.com/2010/11/jquery-ui-1-9-milestone-3-spinner/

As part of a major overhaul of the jQuery UI API, we’d also like to invite the community to provide feedback on the first set of proposed changes to jQuery UI’s API starting with the Accordion. Scott Gonzalez has a complete break-down of these changes available here:

http://blog.jqueryui.com/2010/11/accordion-api-redesign/

You may also be interested to hear that we released a second alpha release of the jQuery Mobile project this month. This release included a number of bug fixes and enhancements to the original jQuery Mobile Alpha 1 release. Read more about this new release below:

http://jquerymobile.com/2010/11/jquery-mobile-alpha-2-released/

jQuery 1.4.4 Now On The Google CDN

If you prefer linking to jQuery on Google’s CDN you’ll be pleased to know that jQuery 1.4.4 can now also be accessed on their servers. If you would like to link to this you can either use:

https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js [Minified]

https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js [Unminified]

Upcoming  jQuery Training Events


Group training is a great way to improve your jQuery skills and Ben Alman over at Bocoup would like to make an announcement about upcoming events they’ll be holding soon:

“Bocoup is once again offering our 3-Day Comprehensive jQuery Training. Sessions will be held at The Bocoup Loft in Boston, and 10% of profits will go directly to the jQuery Foundation. We’ve just posted dates for Q1 2011, so be sure to sign up now since class sizes are limited.”

Wednesday – Friday, January 5th – 7th, 2011
http://training.bocoup.com/comprehensive-jquery-training-2011-01-05/

Wednesday – Friday, March 2nd – 4th, 2011
http://training.bocoup.com/comprehensive-jquery-training-2011-03-02/

jQuery Podcast Episodes 38  & 39 With John Resig, Creator Of jQuery

We have two fantastic new episodes of the Official jQuery Podcast for you this month – episodes 38 and 39 feature jQuery creator John Resig and you can stream them online or download them via the links below:

Episode 38 – jQuery 1.4.3 http://podcast.jquery.com/2010/10/29/episode-38-jquery-1-4-3/

Episode 39 – jQuery Mobile http://podcast.jquery.com/2010/11/10/jquery-mobile/

Community Spotlight

CSS Hook Extensibility in jQuery 1.4.3+

cssHooks allow you to “hook” in to how jQuery gets and sets css properties. This means that you have the ability to create a cssHook to help normalize differences between browsers, or to add some missing functionality from the stock jQuery.fn.css(). David Petersen’s fantastic article on cssHooks caught our attention and we think it could come in useful in your projects.

[Read More]

VisualStudio VSdocs are now available for jQuery 1.4.3 & 1.4.4

Intellisense can be quite an important feature for Visual Studio 2010 developers and as VSdocs for jQuery 1.4.3, 1.4.4 and Mobile are quite commonly requested, we wanted to remind you that these can be downloaded at the following link, courtesy of appendTo().

Essential JavaScript & jQuery Design Patterns For Beginners

In this free online book you can learn about the advantages of using design patterns in your JavaScript and jQuery applications. Sample code is provided for both and as the book is written with beginners in mind, it’s easy to pick up some of the lessons it teaches.

[Read More]

And that’s it. We look forward to posting another update in a few weeks, but until then good luck with all your jQuery projects!.

jQuery 1.4.4 Released

Posted on by

jQuery 1.4.4 is now out! This is the fourth minor release on top of jQuery 1.4 and lands a number of fixes for bugs including some nice improvements over 1.4.3.

We would like to thank the following community members that provided patches, input and their time towards this release: Rick Waldron, Dan Heberden, Alex Sexton, Colin Snover.

Along with the following members of the jQuery core team: John Resig, Dave Methvin, Karl Swedberg, Paul Irish.

We also thank our bug triage team who assisted in narrowing down some of the important fixes needed for this release: Colin Snover, Rick Waldron, Addy Osmani, Alex Sexton, Adam Sontag, Dave Methvin, Mike Taylor, Aaron Boushley, Jitter and John Resig.

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.microsoft.com/ajax/jQuery/jquery-1.4.4.min.js

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

General Improvements

We’ve made a number of improvements with this release, many of which have fixed bugs that were highlighted by the jQuery Community. For the complete list of changes, see the section below marked ‘Changes’ for more information.

New Features

All new features and changes can be found in the jQuery API documentation for 1.4.4.

.fadeToggle()

In an attempt to further unify the methodology across our API, we’ve introduced a new method to Effects called .fadeToggle(). We already have existing toggle methods in our API for sliding (.slideToggle()) and toggling classes (.toggleClass()) and it made sense for us to extend the availability of a built in toggle to fading effects as well. See the API documentation on .fadeToggle() for more information.

Changes

What’s Been Updated?

There are a few areas in jQuery that have seen changes since 1.4.3 was released:

  • (New) Added a new animation method, .fadeToggle()
  • (Enh) Calling .data() with no arguments now includes data from HTML5 data- attributes (#7222)
  • (Enh) Moved jQuery.props from support.js to attributes.js (#6897)
  • (Enh) .width() and .height() now report the width and height of hidden elements (#7225)
  • (Bug) stopImmediatePropagation was not being honoured in live/delegate event handlers (#7217)
  • (Bug) Fixed an issue where host and protocol were not compared case-insensitively when determining whether an AJAX request was local or remote (#6908)
  • (Bug) Fixed an issue where the “clone” variable was not being declared correctly (#7226)
  • (Bug) Fixed a bug where we only change the ID on nodes that don’t already have an ID for rooted qSA (#7212)
  • (Bug) Limited the scope of the CSS ‘auto’ change to just height/width (#7393)
  • (Bug) Fixed a bug to ensure that unquoted attribute selectors are quoted (allowing them to go into qSA/matchesSelector properly). Fixes (#7216)
  • (Bug) Fixed a bug to ensure that if additional load events are triggered (eg. an iframe being dynamically injected in DOM ready) the ready event isn’t triggered twice (#7352).
  • (Bug) Fixed a condition that prevents attr from working on non-Element nodes (#7451).
  • (Bug) Changing an HTML5 data attribute after calling .data(‘foo’) no longer causes .data(‘foo’) to also change (#7223)
  • (Bug) Fixed a bug where Opera didn’t give height/width of display: none elements with getComputedStyle but did with currentStyle – fall back to that if it exists added.
  • (Bug) Fixed a bug to ensure accessing computed CSS for elements returns ‘auto’ instead of ” consistently (#7337)

It also fixes a number of regressions in 1.4.3. One that caused:

  • (Bug) JSONP calls to fail when cleaning up after a callback (#7196)
  • (Bug) .removeData() to fail (#7209)
  • (Bug) “ready” events to fire twice when added using .bind(“ready”, foo) (#7247)
  • (Bug)  .css(‘width’) and .css(‘height’) to return 0 or negative values when trying to get the style of a hidden or disconnected element (#7225)
  • (Bug) the attribute not equals selector ([foo!=bar]) to not work in Firefox (#7243)
  • (Bug) find() to fail when selecting from forms containing inputs named “id” (#7212)
  • (Bug) .children(selector) to fail on XML documents (#7219)
  • (Bug) child (>), next sibling (+), and previous sibling (~) selectors to fail when combined with non-CSS pseudo-selectors like :last (#7220)
  • (Bug) an error “handler is null” to be raised when passing null as the event handler (#7229)
  • (Bug) it to be impossible to include a content-body with DELETE requests (#7285)
  • (Bug) it to be impossible to include data with HEAD requests (#7285)
  • (Bug) an issue where IE was firing click events on disabled elements when using live/delegate (#6911)
  • (Bug) .show() to fail if .hide() was first called on an already-hidden element (#7331)
  • (Bug) .show() to fail if an element was hidden in a stylesheet, then had .css(‘display’) manually set prior to calling .show() (#7315)


Backwards-incompatible changes in jQuery 1.4.4

The .width() and .height() methods no longer return 0 when inspecting an element hidden using ‘display: none’. To determine if an element is hidden, always use .is(‘:hidden’).

and that’s it!. jQuery 1.4.4 is now out so feel free to update your projects to use the latest version. We welcome any and all feedback from the community.

What Features Would You Like To See In jQuery 1.5?

Now that jQuery 1.4.4 is out, we’re starting the process of planning our next major release and we would like the community’s help in deciding what features we should include. The process for suggesting a feature is quite straight-forward; here’s what you need to do:

1. Think of a feature you would like included in jQuery 1.5
2. Create a new ticket for that feature in our [bug tracker] if one does not already exist
3. Send your nomination by filling out the [jQuery 1.5 feature nomination form]

Thats it! In a couple of weeks the jQuery team will be sitting down to review all nominations. The features that we think would benefit the majority of the community will be added to our roadmap.

We’re aiming to release jQuery 1.5 early next year and we appreciate any help you can provide in letting us know how we can improve it for you. We look forward to hearing your ideas and feature requests.

The Official jQuery Podcast has a New Home

Posted on by

Today, we’d like to announce that we’ve moved the Official jQuery Podcast off the jQuery blog and onto it’s own site at http://podcast.jquery.com.

We felt that with a weekly blog post for each episodes show notes the podcast was taking over the blog.  Some of the community members thought the same way.  We’ve been working on porting over the existing posts and making the new podcast site easier to use for our listeners.

Each episodes show-notes are now streamlined to give you a quick introduction about what the show is about followed by all the links that were mentioned in the show.  We also have the ability to play the show from the post with an embedded player as well as easy links to download and subscribe.

We also have a easy contact form that will allow you to contact the podcast directly.

We’ve cleaned up the jQuery blog and removed the old show notes and put in place URL redirects so old urls will still go to the right post on the new site. While we are talking about the blog, we’d like to know what would you like to see more of on the jQuery blog?  Currently we’ve been using the blog to post news about the project and upcoming events.  What else can we post to help you out?  We’d love to hear your ideas.

Special thanks goes out to Doug Neiner for helping out with design and coding, also, would like to thank Jonathan Sharp for setting up the site and getting the URL redirects in place.

Let us know what you think of the new podcast site and don’t forget to keep listening to the show.