2016-06-01 9 views
0

私は、たくさんのマーカーを表示するチラシマップと、ときどきマップに追加するイージーボタンコントロールを持っています。ユーザーがそれをクリックすると、マップから削除します。 しかし、それをクリックすると、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); 

I)は、代わりにmap.removeControl中backButon(の "本" と "BTN" でテストが、同じエラー。私はまた、backButton.removeFrom(マップ)を使用してテスト..

おかげ

答えて

3

イベントハンドラ関数の内部で、ボタンがthisとしてacessed、それは同じくらい簡単ですすることができるが、 map.removeControl(this);またはthis.remove();

しかし、easyButtonのコードでは、ボタンをクリックした直後に地図にアクセスしようとしているため、1つのフレームでそれを削除するのを待つ方が良いでしょう。 this working exampleを参照してください。

0

を私は信じてあなたがボタンをマップ上で行うeverthingボタンを削除した場合beacuse、より良いあなたは自分のボタンを無効または非表示で削除されます、だからこれを試してください:D

backButton.disable()?

最後の例:http://danielmontague.com/projects/easyButton.js/v1/examples/

またはちょうどあなたのボタンでIDを設定し、これを使用する:$("#MyID").hide()

+0

ありがとう、私はあなたに連絡をとっています、私は今夜それをテストすることができます! :) – Furtiro

+0

@Furtiro大丈夫;) – HudsonPH

+0

IvanSanchezの答えは完璧に機能し、無効になっていませんでした!とにかくありがとう – Furtiro

関連する問題