2017-02-18 9 views

答えて

2

普通の問題は、"mouseover"のイベント位置でマウスオーバーするとポップアップを開くことです。マーカーの場合、この位置はマーカーの座標で、マーカー全体をカバーするポップアップになります。そのため、マウスはマーカーから「取り出されます」。

ここでは、リスナーは"mouseout"ではありません。そのため、この効果に気付かない場合があります。しかし、マウスはもはやあなたの元の層にはなくなりました(今あなたのポップアップにあります)。したがって、"click"はあなたの層ではなくポップアップで起こります。

時々、あなたが誤って少しバック層の上にマウスを移動し、新しいポップアップが(何らかの理由で)まだ挿入されていない場合、それはまだ、仕事も

デモ:http://playground-leaflet.rhcloud.com/gusu/1/edit?html,output

2の回避策されています:

  • "mouseover"正確な位置でマップ上で開く代わりに、元のレイヤーにポップアップをバインドするには。こうすると、マーカの上で開くか、パスの中央に表示されます。
  • ポップアップの代わりにTooltipを使用すると、「マウスオーバー」に適しています。

例:http://playground-leaflet.rhcloud.com/zado/1/edit?html,output

+0

は、あなたの答えをありがとうございました。あなたは私に正しい方向を与えました。ツールチップが静的ではないため、ユーザーの入力に応じて変更されるため、私はあなたの提案を正確に使用できません。また、私は、bindTooltipを含まない最新バージョンのleaflet.jsを使用していないことを理解しました。最後のバージョンにアップグレードすると、後で行うコードのいくつかの箇所で変更が要求されます。現在、私はポップアップの場所を各フィーチャーの中心に変更したので、ユーザーは中心から少し離れたところにあるフィーチャーをクリックすることができました。私はそれが理想的な解決策ではないことを理解しています、後でそれを変更するかもしれません。 – eug100

関連する問題