jQuery UI 1.8 Upgrade Guide
link Overview
This guide will assist in upgrading from jQuery UI 1.7.x to jQuery UI 1.8.x. All changes are listed below, organized by plugin, along with how to upgrade your code to work with jQuery UI 1.8.
link Accordion
- Removed
alwaysOpen
option in favor ofcollapsible
option (#4030)
link Datepicker
- The yearRange option now allows different formats for each half of the range,
e.g.
"1950:-18"
. This means that relative years must always use a"+"
or"-"
to indicate their status. In particular, to reference the current year you must use"+0"
, e.g.,"-10:+0"
. - To suppress show/hide animations set
showAnim
to blank orfalse
instead of settingduration
to0
. - Manually entered dates now update the alternate field.
- Default tab processing is no longer suppressed.
link Dialog
beforeclose
option changed tobeforeClose
-beforeclose
is now deprecated and will be removed in the next release.- Dialog buttons now use the new Button widget, it has to be included to get properly themed dialog buttons. If it is missing, plain unthemed buttons will be used, which will still work, just not look as nice.
link Draggable
- Removed
ui.absolutePosition
in callbacks (#3990) - Changed
stack
option to accept a selector instead of a hash (#4365)
link Droppable
- Removed
ui.absolutePosition
in callbacks (#3989)
link Widget
link Widget prototype changes
$.widget.prototype
to$.Widget.prototype
so it can fully use prototypal inheritance ($.Widget
is a constructor).- Renamed
_init()
to_create()
. - A new
_init()
method was added to perform "default functionality". _init()
is called every time the plugin is called without passing the name of a method to invoke.- Renamed
_setData()
to_setOption()
. - Removed
_getData()
since it should never be overridden. - Removed bindings for data events, must always use the
option()
method now. - Added
widget()
to return the main/outermost element of the widget. - Getter methods no longer need to be explicitly defined. Any method that
returns a value other than
undefined
or the plugin instance is automatically treated as a getter. This also adds the ability to define a method that can act as a chainable setter and a getter. destroy()
now removes all widget-namespaced events bound tothis.element
andthis.widget()
.option()
with no parameters now returns the full options hash.- Instantiating a widget directly via the
new
keyword now fully initializes the widget (no need to call the initialization method after the constructor).
link Properties moved from $.ui.foo
to $.ui.foo.prototype
$.ui.foo.defaults
->$.ui.foo.prototype.options
$.ui.foo.eventPrefix
->$.ui.foo.prototype.widgetEventPrefix
link Other changes
$.widget()
now accepts a base widget to extend as the second parameter; defaults to$.Widget
.- Added
$.widget.bridge()
to allow creation of stateful plugins using a custom constructor. - Calling the constructor method multiple times now performs an action. If a
hash is passed to the constructor, that hash is passed to the
option() method and the
_init()` method is called.
link New Widget Method
A new common method has been added, called widget()
. This method will return
the .ui-{pluginname}
element. Depending on the plugin, in many cases this is
different than the original element, otherwise it will return the original
element.
For example, when you call $( "#myDiv" ).dialog()
the #myDiv
element gets
the .ui-dialog-content
class while a generated wrapper element gets the
.ui-dialog
class. Before the widget method existed it was a bit of a pain to
call `$( "#myDiv" ).closest( ".ui-dialog" ) and though that worked in this case,
for many plugins that doesn't work, for example, Datepicker, or Autocomplete,
where the widget element is not a wrapper.
Now with the widget()
method, you can simply call
$( "#myDiv" ).dialog( "widget" )
to get the widget element.