2016-06-21 11 views
3

Ich habe ein Steuerelement in einer Broschüre Map, die ein anderes Steuerelement beim Klicken erstellt. Beim zweiten Klick sollte das zweite Steuerelement entfernt werden. Ich verwende map.removeControl(customControl), aber ich erhalte eine FehlermeldungEntfernen Sie die Kontrolle in Leaflet

Uncaught TypeError: t.remove is not a function

keine Gedanken darüber, was ich hier fehlt?

var customControl = L.Control.extend({ 

    options: { 
     position: 'topleft' 
    }, 

    onAdd: function (map) { 
     var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom toggleContainer'); 
     return container; 
    } 
}); 

var menuControl = L.Control.extend({ 

    options: { 
     position: 'topleft' 
    }, 

    onAdd: function (map) { 
     var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom menuControl'); 
     container.onclick = function() { 
      if (menuControlActive === true) { 
       this.style.backgroundImage = 'url(./assets/close.jpg)' 
       map.addControl(new customControl()); 
       menuControlActive = false 
      } else { 
       this.style.backgroundImage = 'url(./assets/open.jpg)' 
       map.removeControl(customControl); 
       menuControlActive = true 
      } 
     } 
     return container; 
    } 
}); 

Antwort

2

gemustert es schließlich auf eigene Faust aus:

function createControl() { 
customControl = L.control({position: 'topleft'}); 

    customControl.onAdd = function (map) { 
     var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom toggleContainer'); 
     return container; 
    } 
customControl.addTo(map) 
} 

var menuControl = L.Control.extend({ 

    options: { 
     position: 'topleft' 
    }, 

    onAdd: function (map) { 
     var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom menuControl'); 
     container.onclick = function() { 
      if (menuControlActive === true) { 
       this.style.backgroundImage = 'url(./assets/close.jpg)' 
       createControl() 
       menuControlActive = false 
      } else { 
       this.style.backgroundImage = 'url(./assets/open.jpg)' 
       map.removeControl(customControl); 
       menuControlActive = true 
      } 
     } 
     return container; 
    } 
}); 
Verwandte Themen