diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js index 1ce4dfcd7e..fad3d93de3 100644 --- a/lib/OpenLayers/Control/LayerSwitcher.js +++ b/lib/OpenLayers/Control/LayerSwitcher.js @@ -45,38 +45,40 @@ OpenLayers.Control.LayerSwitcher.prototype = * @type DOMElement */ redraw: function() { - var pixel = new OpenLayers.Pixel(this.map.div.clientWidth - 200, 4); - this.div.innerHTML = ""; - for(i=0; i < this.map.layers.length; i++) { - var div = $('LayerControl_layer' + i); - if (!div) { - div = OpenLayers.Util.createDiv("LayerControl_layer" + i, - pixel, - new OpenLayers.Size(200, 20)); - - div.innerHTML = this.map.layers[i].name; - var visible = this.map.layers[i].getVisibility(); - if (!visible) { - div.style.backgroundColor = - OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; - div.style.color = - OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; - } else { - div.style.backgroundColor = - OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; - div.style.color = - OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; - } - div.style.padding = "5px"; - - //tag references onto the div for use in event handlers - div.layerid = i; - div.map = this.map; - div.ondblclick = this.doubleClick.bindAsEventListener(div); - div.onmousedown = this.singleClick.bindAsEventListener(div); - this.div.appendChild(div); + //clear out previous incarnation of LayerSwitcher tabs + this.div.innerHTML = ""; + + var pixel = new OpenLayers.Pixel(this.map.div.clientWidth - 200, 4); + for(i=0; i < this.map.layers.length; i++) { + + div = OpenLayers.Util.createDiv("LayerControl_layer" + i, + pixel, + new OpenLayers.Size(200, 20)); + + div.innerHTML = this.map.layers[i].name; + var visible = this.map.layers[i].getVisibility(); + if (!visible) { + div.style.backgroundColor = + OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; + div.style.color = + OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; + } else { + div.style.backgroundColor = + OpenLayers.Control.LayerSwitcher.ACTIVE_COLOR; + div.style.color = + OpenLayers.Control.LayerSwitcher.NONACTIVE_COLOR; } + div.style.padding = "5px"; + + //tag references onto the div for use in event handlers + div.layerid = i; + div.map = this.map; + + div.ondblclick = this.doubleClick.bindAsEventListener(div); + div.onmousedown = this.singleClick.bindAsEventListener(div); + this.div.appendChild(div); + pixel = pixel.add(0, 35); } return this.div;