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:


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


  • #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’);


  • #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


  • #10267: IE8 and window is(‘:visible’) crashes


  • #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


  • #8856: Request: deferred.isUnresolved()
  • #9033: try{ } finally{ } error in IE8
  • #9398: Proposal for Improved Deferreds


  • #9434: .outerWidth()/.outerHeight()/.innerWidth()/.innerHeight() should work on window and document


  • #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


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


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


  • #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


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


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

8 thoughts on “jQuery 1.7 Beta 2 Released

  1. Jeffrey Gilbert on said:

    Where’s the performance improvement chart? I always love seeing those whenever things like “unnecessary reflows” get fixed.

  2. Excellent work guys.

    Looks like a lot of bugs have been fixed! I’ll do some testing, particularly around Effects and animations states.


  3. From testing jquery-1.6.4 and jquery-1.7b2 against WebKit.

    event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.

    Just thought I’d point this out.

  4. I would like to see more attention towards stability and less towards these fancy new features. Just look at all of these bugs, and these are simply the ones that were fixed! Many more get closed for “nonactivity” or simply are never handled. Exhibit A: http://bugs.jquery.com/ticket/10003 — a regression in IE caused by a desire to support Blackberry? Really? I know IE isn’t everyone’s favorite, but it *is* quite a bit more popular than Blackberry! Who the hell even uses Blackberries anymore?

    What’s happened to the direction of jQuery….who’s behind the wheel? The entire attr() vs prop() fiasco is nothing short of hideously hilarious. It reminds me of giving a group assignment to 4th graders and watching them scramble.

    jQuery got to where it is _because_ of it’s basic, unbloated nature. That is quickly changing. Was there REALLY that much community drive for all the deferred crap, and now these callbacks? Why does this have to be jQuery? You’ve gone from a simple DOM/Ajax library to a pseudo-wannabe framework of some sort. If I *wanted* deferreds, callbacks, etc. let me use a plugin or external library/framework, but don’t force it down my throat in what is traditionally a DOM/Ajax library. What’s next? MVC, “reactive extensions” via MS, or maybe some AoP? Can we get some classical OOP while we’re at it?

    Which begs the question: despite widespread community support for more large-scale application control for jQuery (such as MVC and classic OOP), it’s all unilaterally dismissed by Resig with a simple hand-wave, but we get these paradigms that are still infantile to the JS community (and even programming in general) and they get fast-tracked to jQuery core?

    It’s all absurd. John, I hate to break it to you, but jQuery has officially sold out, but I guess I should have seen it coming: “hip”, “new wave”, etc. are all just synonyms for “I like bandwagons”.

    Stick to your core competencies!