いくつかのマーカーを使用するLeaflet.jsを使用してマップで作業しています(最終的には40個までのマーカーがあります)。各マーカーには、関連するポップアップと詳細があります。 Leaflet.jsのデフォルトの動作では、少なくとも1つのマーカーのポップアップ(最後にリストされたマーカーと思われます)を自動的に開くようです。
allポップアップをマップページの初期読み込み時に閉じたいので、ユーザーはマーカーをクリックしてポップアップを開く必要があります。誰でもこれを行う方法を知っていますか?ここにプロトタイプがあります:
http://dev.monographic.org/maps/prototype-10.html
ありがとうございました。
mapオブジェクトから、開いているすべてのポップアップを閉じるためのクリーンなメソッドがあります
map.closePopup();
私はこのコードで問題を解決することができました:
$(".leaflet-popup-close-button")[0].click();
それが将来誰かを助けることを願っています。
.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");
クリック動作はそのままです(ユーザーがこれらのマーカーをクリックすると、ポップアップは引き続き表示されます)が、ページが読み込まれるときにポップアップは表示されません。
$(".leaflet-popup-close-button").click()
マップのロードが完了した後でこれを試してください。
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);