Forráskód Böngészése

Editor: Simplified FacySelect code.

Mr.doob 12 éve
szülő
commit
cb9216fa96
1 módosított fájl, 9 hozzáadás és 27 törlés
  1. 9 27
      editor/js/libs/ui.js

+ 9 - 27
editor/js/libs/ui.js

@@ -357,13 +357,12 @@ UI.FancySelect = function () {
 		switch ( event.keyCode ) {
 			case 38: // up
 			case 40: // down
-				var index = scope.indexOf( scope.selectedValue );
-				index += ( event.keyCode == 38 ) ? -1 : 1;
+				scope.selectedIndex += ( event.keyCode == 38 ) ? -1 : 1;
 
-				if ( index >= 0 && index < scope.options.length ) {
+				if ( scope.selectedIndex >= 0 && scope.selectedIndex < scope.options.length ) {
 
 					// Highlight selected dom elem and scroll parent if needed
-					scope.setValue( scope.options[index].value );
+					scope.setValue( scope.options[ scope.selectedIndex ].value );
 
 					// Invoke object/helper/mesh selection logic
 					scope.dom.dispatchEvent( changeEvent );
@@ -377,6 +376,7 @@ UI.FancySelect = function () {
 	this.dom = dom;
 
 	this.options = [];
+	this.selectedIndex = -1;
 	this.selectedValue = null;
 
 	return this;
@@ -444,9 +444,9 @@ UI.FancySelect.prototype.setValue = function ( value ) {
 
 			// scroll into view
 
-			var y = element.offsetTop - this.dom.offsetTop,
-				bottomY = y + element.offsetHeight,
-				minScroll = bottomY - this.dom.offsetHeight;
+			var y = element.offsetTop - this.dom.offsetTop;
+			var bottomY = y + element.offsetHeight;
+			var minScroll = bottomY - this.dom.offsetHeight;
 
 			if ( this.dom.scrollTop > y ) {
 
@@ -458,6 +458,8 @@ UI.FancySelect.prototype.setValue = function ( value ) {
 
 			}
 
+			this.selectedIndex = i;
+
 		} else {
 
 			element.style.backgroundColor = '';
@@ -472,26 +474,6 @@ UI.FancySelect.prototype.setValue = function ( value ) {
 
 };
 
-UI.FancySelect.prototype.indexOf = function ( key ) {
-
-	if ( typeof key === 'number' ) key = key.toString();
-
-	// Iterate options and return the index of the first occurrence of the key
-	for ( var i = 0; i < this.options.length; i++ ) {
-
-		var element = this.options[i];
-
-		if ( element.value === key ) {
-
-			test = element;
-			return i;
-
-		}
-	}
-
-	return -1
-};
-
 
 // Checkbox