Selectmenu: implemented change callback event

This commit is contained in:
Felix Nagel 2011-09-27 21:15:47 +02:00
parent 7e8e542667
commit 426ecaf21e

View File

@ -60,8 +60,8 @@ $.widget( "ui.selectmenu", {
self.element.bind( 'click.selectmenu', function() { self.element.bind( 'click.selectmenu', function() {
self.newelement.focus(); self.newelement.focus();
return false; return false;
}); })
// .hide(); .hide();
// create button // create button
self.newelement = $( '<a />', { self.newelement = $( '<a />', {
@ -153,6 +153,7 @@ $.widget( "ui.selectmenu", {
}); });
}, },
// TODO update the value option
refresh: function() { refresh: function() {
var self = this, var self = this,
options = this.options; options = this.options;
@ -179,15 +180,21 @@ $.widget( "ui.selectmenu", {
.data( 'element.selectelemenu', self.element ) .data( 'element.selectelemenu', self.element )
.menu({ .menu({
select: function( event, ui ) { select: function( event, ui ) {
var item = ui.item.data( "item.selectmenu" ); var flag = false,
item = ui.item.data( "item.selectmenu" );
if ( item.index != self.element[0].selectedIndex ) flag = true;
self._setSelected( event, item ); self._setSelected( event, item );
item.element = $ ( self.items[ item.index ] ); item.element = self.items[ item.index ];
self._trigger( "select", event, { item: item } ); self._trigger( "select", event, { item: item } );
self.close( event, true); self.close( event, true);
if ( flag ) self._trigger( "change", event, { item: item } );
}, },
focus: function( event, ui ) { focus: function( event, ui ) {
var item = ui.item.data( "item.selectmenu" ); self._trigger( "focus", event, { item: ui.item.data( "item.selectmenu" ) } );
self._trigger( "focus", event, { item: item } );
} }
}) })
.bind({ .bind({