78
var map = L.map('map');
var marker = L.marker([10.496093,-66.881935]).on('click', onClick);
function onClick(e) {alert(e.latlng);}
marker.addTo(map)

マーカーをクリックすると、警告メッセージは次のとおりです。未定義

しかし、それを変数マップに入れると、うまくいきます! (緯度と経度を表示)

map.on('click', onClick); 

マーカーで機能しない理由を誰かが知っていますか?

4

5 に答える 5

104

受け入れられた答えは正しいです。ただし、もう少し明確にする必要があるため、他の誰かがそうする場合に備えて:

リーフレットを使用すると、マップ上で行う事実上すべての操作 (この場合はマーカー) でイベントを発生させることができます。

したがって、上記の質問で提案されているようにマーカーを作成できます。

L.marker([10.496093,-66.881935]).addTo(map).on('mouseover', onClick);

次に、onClick 関数を作成します。

function onClick(e) {
    alert(this.getLatLng());
}

これで、そのマーカーにマウスを合わせると、現在の緯度/経度のアラートが発生します。

ただし、「mouseover」の代わりに「click」、「dblclick」などを使用できます。緯度/経度を警告する代わりに、onClick の本体を使用して他の必要なことを行うことができます。

L.marker([10.496093,-66.881935]).addTo(map).on('click', function(e) {
    console.log(e.latlng);
});

ドキュメントは次のとおりです。http://leafletjs.com/reference.html#events

于 2014-07-01T02:29:44.173 に答える
25

関数呼び出しを使用した jsfiddle は次のとおりです: https://jsfiddle.net/8282emwn/

var marker = new L.Marker([46.947, 7.4448]).on('click', markerOnClick).addTo(map);

function markerOnClick(e)
{
  alert("hi. you clicked the marker at " + e.latlng);
}
于 2016-03-09T22:19:32.413 に答える
20

私は解決策を見つけました:

function onClick(e) {alert(this.getLatLng());}

マーカーの getLatLng() メソッドを使用

于 2013-06-04T21:59:29.087 に答える
-4

パーティーに少し遅れて、マーカー クリック イベントの例を探しているときにこれを見つけました。元の投稿者が受け取った未定義のエラーは、 onClick 関数が定義される前に参照されているためです。ライン 2 とライン 3 を交換すると、動作するはずです。

于 2017-11-21T08:50:13.750 に答える