What’s New in jQuery 1.4.4

Tweet

The fourth minor release of jQuery 1.4 is now available — less than one month after 1.4.3 was released.

Unsurprisingly, version 1.4.4 is primarily a set of bug fixes following feedback from the user community. There is only one new feature…

jQuery.fadeToggle()

The .fadeToggle() method provides fade-in and fade-out animation. If an element is visible, it’s opacity is reduced and, when it reaches zero, the display property is set to none so the element disappears from the page layout.

Calling .fadeToggle() on an invisible element (where display:none is set) makes the item visible and fades it back in.

Major bug fixes

If you’ve been struggling to make your code work, you’ll be pleased to know that the following issues have been fixed:

  • The .width() and .height() of hidden elements are reported correctly (in some situations, previous versions would return negative values). This is likely to be the cause of most 1.4.3 to 1.4.4 update compatibility issues.
  • Host and protocol names are now compared case-insensitively when determining whether an Ajax request is local or remote.
  • Computed CSS for elements now returns “auto” consistently rather than an empty string.
  • A function bound to the document ready event will now fire once (it was firing twice).
  • The .removeData() failure has been fixed.
  • The attribute not equals selector ([foo!=bar]) now works in Firefox.
  • Child (>), next sibling (+), and previous sibling (~) selectors now work when combined with pseudo-selectors (such as :last).
  • .show() will not fail if .hide() was initially called on a hidden element.

Links

Grab jQuery 1.4.4 from:

On to jQuery 1.5

The next major jQuery release is due in early 2011. If you desperately need a new feature or want to suggest an improvement, you can create a new ticket and nominate it for version 1.5. Alternatively, please leave your comments below and we’ll make sure they’re passed on.

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • cjke.7777

    Hi guys,

    I believe that a handy improvement for jquery would be a unbind and bind function wrapper into one.

    So instead of
    $(“#btn”).unbind(“click”, fnc).bind(“click”, fnc);

    You could just go
    $(“#btn”).bind(“click”, fnc, true);
    Where ‘true’ indicates to unbind any previously attached events.

    I realise that sometimes you don’t need to do this, but when you do, it would be a time saver.

    Thanks

    • Tim

      $(“#btn”).unbind(“click”, fnc).bind(“click”, fnc);

      Why would you want to unbind a function, and then rebind the same function back onto the same element? Are you just trying to manipulate the event stack order?

  • cjke.7777

    jQuery doesn’t have a function to see if a jQuery object already has an event bound (like the AS3 hasEventListener() function). So the only way to be sure is by unbinding the existing one.

    This may be necessary if you are creating/removing elements dynamically which need events to be linked to them. If the elements are being created in different spots, and being added to a collection, and you are adding to events to the collection items, it is necessary to check if there is existing events associated with the items.

    Otherwise one element may end up with the same event ‘n’ times. So when clicked, the function will be triggered ‘n’ times.

    Alternatively, jQuery could provide a function to test if a object is bound to an event already.

    • Dude

      Doesn’t the live() function already do that?

  • cjke.7777

    live() is indeed similar, and a very cool function, but achieves a slightly different outcome.

    There is still no way to test for an existing event bound to a jq object, or to override an existing one through a bind call.

  • Ty the Web Guy

    jQuery 1.4.4 is also in the Google Libraries API at:
    https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js