0

私は256 * 256の画像を持っています。以下のようにリーフレットに画像を設定しました。

var cloudmadeUrl = tileserver + '/' + selected_map + '/tiles_{z}_{y}x{x}.png';

cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 4, noWrap: true, continuousWorld: true });

map = new L.Map('map', {
          center : latlng, 
          zoom : 0, 
          layers : [cloudmade], 
          tms: true
       });

地図のクリックイベントがあります。タイル画像の外側をクリックすると、クリックイベントが機能するようになりました。

クリック イベントをマップ タイル イメージ内でのみ動作させるにはどうすればよいですか?

4

1 に答える 1

0

マップの境界について心配する代わりに (タイルレイヤーではなくコンテナーに関連付けられているため)、クリック イベントのターゲットについて心配することができます。提案については、「 event.target を既存の jquery オブジェクトと一致させる」を参照してください。

これは動作中のJSFiddleです。リーフレット コードで使用event.originalEventして、元のクリック イベントに関する情報を収集します。次に、クリック イベントのクラスに基づいて何かを行います。

于 2013-09-25T10:00:18.957 に答える