2016-10-31 21 views
0

リーフレットの地図をクリックしたときに反応があり、「警告」が発生します。しかし、問題は、クリックがの外にある場合は、私がマップ上に持っている多角形のの場合にのみ反応が起こることです。私は試しました:リーフレット - 地図上の特定の地域で何かをクリックすること

function onMapClick(e) { 
    alert("Nothing to do here") ; 
} 
mymap.on('click', onMapClick); 

ポリゴンの1つをクリックしないとうまくいきます。しかし、ポリゴンをクリックすると、私は自分の行動を取り、さらにこのアラートを取得しますが、これは起こりたくありません。これは誰でもどこにでも言及することができない可能性があるので、私はリードを使い果たしたように感じる。これを行う方法を知るにはどこで調べる必要がありますか?

答えて

1

リーフレット1.0.xでは、いくつかのマップレイヤー上の対話的なイベント(L.Polygonなど)がデフォルトでマップにバブルアップします。詳細および背景については、bug #3307を参照してください。

ドキュメントには明示的には言及していませんが、うまくいけばPR #4883でうまくいくでしょう。ポリゴンイベントハンドラの内側で、必要に応じてL.DomEvent.stopPropagation()を呼び出してください。

+0

私はポリゴンレイヤクリック内の機能を処理し、私はポリゴン形状をクリックすると、マップアラートが表示停止したことを呼び出してみました。しかし、問題は、(ポリゴンのクリックのための)その機能でやっている動作もやらなくなったことです。これは望ましくない副作用です! –

+0

あなたはおそらく間違った順序で何かをやっているでしょう。インスピレーションのためにhttps://playground-leaflet.rhcloud.com/zuh/edit?html,console,outputをご覧ください。 – IvanSanchez

+0

私は今それをぶら下げている!私はこのコメントの助けを本当に感謝します –

0

あなたはポリゴンにクリックイベントを挿入し、このトリックを試すことができます。

var onClick = function(event){ 
//Do nothing 
}; 
var poly = new L.Polygon([ 
     [79.07181, -100.63477], 
     [79.06348, -90.43945], 
     [77.52312, -90.52734], 
     [77.50412, -94.21875], 
     [77.41825, -94.35059], 
    ]); 
poly.on('click', onClick); 
関連する問題