2016-06-01 4 views
0

난 마커를 많이 표시하는 리플렛 맵과 맵에 가끔 추가하는 easybutton 컨트롤이 있습니다. 사용자가 그것을 클릭하면지도에서 제거하고 싶습니다. 하지만 클릭하면 easybutton.js에서 항상 오류가 발생합니다 : 'TypeError : this._map is null'. 이 오류는 IE에서 내 페이지를 고정시킵니다.전단지 : 리플릿 맵에서 EasyButton 컨트롤 제거

내 컨트롤과 이벤트를 제거하려는 위치에 onclick을 추가 할 때 이것은 제 코드입니다.

backButton = L.easyButton('<span class="backButton">&larrhk;</span>', function (btn, map) { 

       //evenement on click button 


       map.removeControl(backButton); 



      }, 
      { position: 'bottomright' }); 

      map.addControl(backButton); 

나는 함께 "이"와 "BTN"대신 map.removeControl에서 backButon의()하지만 동일한 오류 테스트. 나는 또한 .. backButton.removeFrom (지도)와

감사

답변

3

이벤트 핸들러 함수 내에서, 버튼은 this로 acessed, 그래서만큼 간단 할 수 있지만 map.removeControl(this); 또는 this.remove();.

그러나 easyButton의 코드는 버튼을 클릭 한 직후 맵에 액세스하려고하므로 더 좋은 방법은 한 프레임을 기다렸다가 제거하는 것입니다. this working example을 참조하십시오.

0
I는 믿지

테스트를 더 나은 당신이 당신의 버튼을 비활성화하거나 버튼이 제거됩니다지도를 할 모든게 버튼을 제거하면 beacuse, 숨기기, 그래서 이것을 시도하십시오 : D

backButton.disable()?

마지막 예 : http://danielmontague.com/projects/easyButton.js/v1/examples/

하거나 귀하의 버튼에 ID를 설정하고이를 사용 $("#MyID").hide()

+0

감사합니다. 연락 드리겠습니다. 오늘 밤에만 테스트 할 수 있습니다! :) – Furtiro

+0

@Furtiro okay;) – HudsonPH

+0

IvanSanchez의 답변이 완벽하게 작동하고 사용하지 못했습니다! 어쨌든 고마워. – Furtiro

관련 문제