r2791 - refactored _refreshValue method

r2791 - refactored _refreshValue method


Author: scottjehl
Date: Tue Jun 16 13:59:15 2009
New Revision: 2791
Modified:
branches/labs/selectmenu/ui.selectmenu.js
Log:
refactored _refreshValue method
Modified: branches/labs/selectmenu/ui.selectmenu.js
==============================================================================
--- branches/labs/selectmenu/ui.selectmenu.js    (original)
+++ branches/labs/selectmenu/ui.selectmenu.js    Tue Jun 16 13:59:15 2009
@@ -446,18 +446,30 @@
    },
    _refreshValue: function() {
        var activeClass = (this.options.style == "popup") ? "
ui-state-active" : "";
-        this.list.find('.'+ this.widgetBaseClass
+'-item-selected').removeClass(this.widgetBaseClass
+ "-item-selected"+activeClass).find('a').attr('aria-selected', 'false');
-        this.list.find('li').not('li.' + this.widgetBaseClass
+ '-group').eq(this._selectedIndex()).addClass(this.widgetBaseClass
+ "-item-selected"+activeClass).find('a').attr('aria-selected', 'true');
-        
+        //deselect previous
+        this.list
+            .find('.'+ this.widgetBaseClass +'-item-selected')
+            .removeClass(this.widgetBaseClass + "-item-selected" + activeClass)
+            .find('a')
+            .attr('aria-selected', 'false');
+        //select new
+        this._selectedOptionLi()
+            .addClass(this.widgetBaseClass + "-item-selected"+activeClass)
+            .find('a')
+            .attr('aria-selected', 'true');
        //toggle any class brought in from option
        var currentOptionClasses = this.newelement.data('optionClasses') ?
this.newelement.data('optionClasses') : "";
-        var newOptionClasses =
this.list.find('li.'+this.widgetBaseClass+'-item-selected').data('optionClasses') ?
this.list.find('li.'+this.widgetBaseClass+'-item-selected').data('optionClasses') : "";
+        var newOptionClasses = this._selectedOptionLi().data('optionClasses') ?
this._selectedOptionLi().data('optionClasses') : "";
        this.newelement
-        .removeClass(currentOptionClasses)
-        .data('optionClasses', newOptionClasses)
-        .addClass( newOptionClasses )
-        .find('.'+this.widgetBaseClass+'-status')
-        .html(
this.list.find('li').not('li.'+this.widgetBaseClass+'-group').eq(this._selectedIndex()).find('a').html()
);
+            .removeClass(currentOptionClasses)
+            .data('optionClasses', newOptionClasses)
+            .addClass( newOptionClasses )
+            .find('.'+this.widgetBaseClass+'-status')
+            .html(
+                this._selectedOptionLi()
+                    .find('a:eq(0)')
+                    .html()
+            );
    },
    _refreshPosition: function(){    
        //set left value