web-dev-qa-db-ja.com

Leaflet.jsですべてのポップアップを閉じる

いくつかのマーカーを使用するLeaflet.jsを使用してマップで作業しています(最終的には40個までのマーカーがあります)。各マーカーには、関連するポップアップと詳細があります。 Leaflet.jsのデフォルトの動作では、少なくとも1つのマーカーのポップアップ(最後にリストされたマーカーと思われます)を自動的に開くようです。

allポップアップをマップページの初期読み込み時に閉じたいので、ユーザーはマーカーをクリックしてポップアップを開く必要があります。誰でもこれを行う方法を知っていますか?ここにプロトタイプがあります:

http://dev.monographic.org/maps/prototype-10.html

ありがとうございました。

30
Fehler

mapオブジェクトから、開いているすべてのポップアップを閉じるためのクリーンなメソッドがあります

map.closePopup();
43
Florian Boudot

私はこのコードで問題を解決することができました:

$(".leaflet-popup-close-button")[0].click();

それが将来誰かを助けることを願っています。

16
sAm

.openPopup()への呼び出しを削除するだけです。

の代わりに

L.marker([57.70887, 11.97456]).addTo(map).bindPopup("<b>Ideal Festival</b><br />2004").openPopup();

使用する

L.marker([57.70887, 11.97456]).addTo(map).bindPopup("<b>Ideal Festival</b><br />2004");

クリック動作はそのままです(ユーザーがこれらのマーカーをクリックすると、ポップアップは引き続き表示されます)が、ページが読み込まれるときにポップアップは表示されません。

5
sfletche
$(".leaflet-popup-close-button").click()

マップのロードが完了した後でこれを試してください。

1
Venkatesh Nadar
  map.closePopup(); 

私にとってはうまくいきませんでしたし、最新のポップアップをすべて閉じたわけではありません。

User2304819の提案の一般化:

  var ButtonremoveNotidfications = L.easyButton({
                id: 'ButtonremoveNotidfications',
                states: [{
                    stateName: 'Show',
                    icon: '<strong>Clear notifications</strong>',
                    title: 'Show',
                    onClick: function (btn) { //Below is the closing module
                        var aa = $(".leaflet-popup-close-button").length
                        if (aa > 0) {
                            for (var i = 0; i < aa; i++) {
                                $(".leaflet-popup-close-button")[i].click();
                            }
                        }
                    }
                }]
            });
            ButtonremoveNotidfications.button.style.width = widthbuttonstyle;
            ButtonremoveNotidfications.button.style.height = heightbuttonstyle;
            ButtonremoveNotidfications.button.style.color = 'blue';
            ButtonremoveNotidfications.addTo(map);
0
mohsen hs