diff --git a/lib/OpenLayers/Renderer/Elements.js b/lib/OpenLayers/Renderer/Elements.js index f83288c165..280e35eb58 100644 --- a/lib/OpenLayers/Renderer/Elements.js +++ b/lib/OpenLayers/Renderer/Elements.js @@ -109,9 +109,7 @@ OpenLayers.ElementsIndexer = OpenLayers.Class({ // If the new node should be before another in the index // order, return the node before which we have to insert the new one; // else, return null to indicate that the new node can be appended. - var nextIndex = rightIndex + 1; - return nextIndex < this.order.length ? - OpenLayers.Util.getElement(this.order[nextIndex]) : null; + return this.getNextElement(rightIndex); }, /** @@ -200,6 +198,30 @@ OpenLayers.ElementsIndexer = OpenLayers.Class({ this.maxZIndex = zIndex; } }, + + /** + * APIMethod: getNextElement + * Get the next element in the order stack. + * + * Parameters: + * index - {Integer} The index of the current node in this.order. + * + * Returns: + * {DOMElement} the node following the index passed in, or + * null. + */ + getNextElement: function(index) { + var nextIndex = index + 1; + if (nextIndex < this.order.length){ + var nextElement = OpenLayers.Util.getElement(this.order[nextIndex]); + if (nextElement == undefined){ + nextElement = this.getNextElement(nextIndex); + } + return nextElement; + } else { + return null; + } + }, CLASS_NAME: "OpenLayers.ElementsIndexer" });