From 426ecaf21e4e29b3025ddeddb3b774e29fc47bc9 Mon Sep 17 00:00:00 2001
From: Felix Nagel <info@felixnagel.com>
Date: Tue, 27 Sep 2011 21:15:47 +0200
Subject: Selectmenu: implemented change callback event

---
 ui/jquery.ui.selectmenu.js | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

(limited to 'ui')

diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js
index 6d15dfa6f..4cb72ae57 100644
--- a/ui/jquery.ui.selectmenu.js
+++ b/ui/jquery.ui.selectmenu.js
@@ -60,8 +60,8 @@ $.widget( "ui.selectmenu", {
 		self.element.bind( 'click.selectmenu',  function() {
 			self.newelement.focus();			
 			return false;
-		});
-		// .hide();
+		})
+		.hide();
 		
 		// create button
 		self.newelement = $( '<a />', {
@@ -153,7 +153,8 @@ $.widget( "ui.selectmenu", {
 		});			
 	},
 	
-	refresh: function() {		
+	// TODO update the value option
+	refresh: function() {
 		var self = this,
 			options = this.options;
 				
@@ -179,15 +180,21 @@ $.widget( "ui.selectmenu", {
 			.data( 'element.selectelemenu', self.element )
 			.menu({
 				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 );
-					item.element = $ ( self.items[ item.index ] );
+					item.element = self.items[ item.index ];
 					self._trigger( "select", event, { item: item } );
+					
 					self.close( event, true);
+					
+					if ( flag ) self._trigger( "change", event, { item: item } );
 				},
 				focus: function( event, ui ) {	
-					var item = ui.item.data( "item.selectmenu" );
-					self._trigger( "focus", event, { item: item } );
+					self._trigger( "focus", event, { item: ui.item.data( "item.selectmenu" ) } );
 				}
 			})			
 			.bind({
-- 
cgit v1.2.3