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

Announcing The jQuery Standards Team

Posted on by

Today we’re happy to announce the creation of a new jQuery sub-team called the jQuery Standards Team to give web developers a voice in the standards process.

Introduction

We all know that web standards are important. They help ensure the code we write works across different technologies, for people of different abilities and most importantly across all browsers.

That said, how often do we all feel our voices, suggestions and ideas are heard by those groups responsible for defining these standards? The reality is that whilst many of us would like to see change, due to time restrictions and lengthy formal processes we’re unable to participate in standards discussions, get involved with writing specifications and contribute to meetings about the future of features. This makes it difficult for web developers to have a voice.



Yehuda Katz is team lead. Paul Irish joins him.

Another problem is that for those that do get involved with the process, it can often feel like participating on a particular thread in standards mailing lists has a limited impact because the web community is so fragmented. Browser vendors are very active on these lists and there’s a tremendous amount of institutional knowledge assumed in almost all threads. Implementors on those lists have their own venues for discussing areas of shared concerns, but web developers wishing to particpate don’t, with the exception of the accidental meetups at conferences.

The jQuery project would like to help change this – we want you to have a voice in how the future of the web is shaped.

The jQuery Standards Team

The jQuery Standards Team has three primary goals:

  • To represent the web developer community, in particular jQuery users, to standards bodies such as the W3C and TC39 with the intention of improving existing standards and standards in progress to better meet the needs of web developers.
  • To represent the web developer community, and especially jQuery users, to browser vendors with the intent of helping them identify standards that they should prioritize for implementing, and proofs of concept that they can build.
  • To help the jQuery project adopt new standards and browser features as appropriate.

This marks a large change in the way the web developer community is able to submit feedback and influence both standards bodies and specifications. By lowering the barrier of entry to having suggestions and issues about current implementations heard, we hope to encourage more developers with an interest in dealing with standards bodies and browser vendors an opportunity to participate in the process.

The jQuery Standards Team is driven by jQuery team members Yehuda Katz and Paul Irish who some of you may know. Yeuhda and Paul have extenstively worked with standards bodies and browser vendors in a number of capacities over the years, with their individual work on SproutCore and Chrome Developer Relations providing them additional perspectives that will be useful when advocating for the community.

You may be wondering why we feel this team deserves to represent the wider web developer community. Because jQuery is used by such a large percentage of sites on the web (over 50% of the top 10,000 sites), we have a good feel for what problems and challenges are commonly faced and what issues with existing implementations we need to try working around. As jQuery is also so focused on DOM-manipulation, the library offers a good source of information for known implementation issues and their (current) best solutions.

Although the current team is primarily composed of jQuery team members, we want to get as many developers passionate about standards and specifications involved with the team as possible. At the end of the day, the team’s goal is to to help identify web developers interested in the process and give us all a forum for both discussing the process, ideas and shared areas of concern. We believe that working together, we can all help build a better web.

Getting Involved

If you’re interested in getting involved with the jQuery Standards Team, the easiest way is to sign up for the Google Group. Similar to other jQuery sub-teams, there are going to be regular public meetings in #jquery-meeting on freenode (date TBA) to discuss how the team can be as effective as possible in promoting the needs of the web developer community.

You might have already seen Paul’s post What feature would improve the web? — if your feedback was captured there, you’ve already gotten involved. ;)

You can also report (or comment) on standard or specification issues in the issue tracker on the official team Github repo. If you’re posting new issues, try to identify problems with specs or standards that either exist or are currently being proposed. Here’s a great example of one such issue.

We want to collect well-specified and articulated issues with the web ecosystem and advocate for improvements with the standards bodies or vendors. For genuine issues, we’ll tag them accordingly (eg. W3C, TC39, Browser-vendor etc.) and if applicable, file tickets with the appropriate standards groups or browser vendors so you don’t have to.

Conclusions

By creating this new forum we hope to give a voice to the millions of web developers interested in contributing to the process, but without an easy way to do so. Please let us know what your thoughts are about the team as we want to improve it as much as possible. We look forward to hearing your comments, suggestions and ideas about both it and the standards process!

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