aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/jquery.ui.selectmenu.js74
1 files changed, 29 insertions, 45 deletions
diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js
index 173a3d8e3..a0aa14ca7 100644
--- a/ui/jquery.ui.selectmenu.js
+++ b/ui/jquery.ui.selectmenu.js
@@ -186,28 +186,6 @@ $.widget( "ui.selectmenu", {
},
- _previous: function() {
- this.list.menu( "focus", null, this._getCurrenItem() );
- this.list.menu("previous");
- },
-
- _next: function() {
- this.list.menu( "focus", null, this._getCurrenItem() );
- this.list.menu("next");
- },
-
- _getCurrenItem: function() {
- return this.list.find( "li" ).not( '.ui-selectmenu-optgroup' ).eq( this._index() );
- },
-
- _toggle: function( event ) {
- if ( this.opened ) {
- this.close( event );
- } else {
- this.open( event );
- }
- },
-
open: function( event ) {
var self = this,
options = this.options;
@@ -227,32 +205,24 @@ $.widget( "ui.selectmenu", {
self.listWrap.addClass( self.widgetBaseClass + '-open' );
- // self.newelement.blur();
- self.list.focus().menu( "focus", null, currentItem )
- // currentItem.focus();
+ self.list.focus().menu( "focus", null, currentItem );
if ( !options.dropdown ) {
+ // center current item
if ( self.list.css("overflow") == "auto" ) {
self.list.scrollTop( self.list.scrollTop() + currentItem.position().top - self.list.outerHeight()/2 + currentItem.outerHeight()/2 );
}
- // console.log( self.newelement.offset().top );
- // console.log( currentItem.offset().top );
+
+ // calculate offset
var _offset = (self.list.offset().top - currentItem.offset().top + (self.newelement.outerHeight() - currentItem.outerHeight()) / 2);
- // console.log( currentItem );
- // console.log( currentItem.position().top );
- // console.log( _offset );
-
-
$.extend( options.position, {
my: "left top",
at: "left top",
offset: "0 " + _offset
});
}
-
- // console.log(options.position);
-
+
self.listWrap.position( $.extend({
of: this.newelementWrap
}, options.position ));
@@ -302,17 +272,28 @@ $.widget( "ui.selectmenu", {
).appendTo( ul );
},
- _destroy: function() {
- clearTimeout( this.searching );
- this.element
- .removeClass( "ui-autocomplete-input" )
- .removeAttr( "autocomplete" )
- .removeAttr( "role" )
- .removeAttr( "aria-autocomplete" )
- .removeAttr( "aria-haspopup" );
- this.menu.element.remove();
+ _previous: function() {
+ this.list.menu( "focus", null, this._getCurrenItem() );
+ this.list.menu("previous");
},
-
+
+ _next: function() {
+ this.list.menu( "focus", null, this._getCurrenItem() );
+ this.list.menu("next");
+ },
+
+ _getCurrenItem: function() {
+ return this.list.find( "li" ).not( '.ui-selectmenu-optgroup' ).eq( this._index() );
+ },
+
+ _toggle: function( event ) {
+ if ( this.opened ) {
+ this.close( event );
+ } else {
+ this.open( event );
+ }
+ },
+
_setOption: function( key, value ) {
this._super( "_setOption", key, value );
if ( key === "appendTo" ) {
@@ -337,6 +318,9 @@ $.widget( "ui.selectmenu", {
return data;
},
+ _destroy: function() {
+ },
+
_value: function( newValue ) {
if (arguments.length) {
this.element[0].value = newValue;