javascript - Mapbox:默认显示工具提示,无需单击标记

标签 javascript css dictionary markers mapbox

在页面加载时打开 Mapbox map 上的所有工具提示,而无需单击标记来显示它的最佳方法是什么?我尝试删除 .leaflet-popup 上的 opacity: 0 但这没有用,因为它们似乎是由 JS 在 DOM 中动态构建的。

这能做到吗?我意识到这不是传统的,但我有一个我正在尝试重新创建的模拟,它基本上具有看起来像工具提示的标记,里面有标题。我搜索并搜索了自定义标记的方法,但我唯一能找到的就是使用您自己的自定义图像。由于我必须显示动态标题,这行不通,所以我现在的计划是对标记图像使用 1x1 透明 png,默认情况下只显示工具提示。

编辑

这是我的代码:

// Setup map
var map = L.mapbox.map("destinations-map", "xxx")
    .setView([40, -74.50], 2);

// Load regions from JSON file
var loadRegions = function () {
    $.ajax({
        dataType: "json",
        url: "/regions",
        success: function (data) {

            $.each(data.regions, function(i, region) {
                L.mapbox.markerLayer({
                    type: "Feature",
                    geometry: {
                        type: "Point",
                        coordinates: region.coordinates
                    },
                    properties: {
                        title: region.title
                    }
                })
                .addTo(map)
                .openPopup();
            });

        }
    });
};

// Initially load region markers
loadRegions();

最佳答案

您可以通过扩展 Leaflet 中的 Map 对象来修改弹出窗口的默认行为。 Leaflet.js 广泛使用了伪经典继承模式,所以你已经为你做了很多工作。尝试:

L.Map = L.Map.extend({
    openPopup: function(popup) {
        this._popup = popup;

        return this.addLayer(popup).fire('popupopen', {
            popup: this._popup
        });
    }
});

然后当你添加你的弹窗时,像这样直接打开它们:

L.marker([65.10, 14.77])
  .addTo(map)
  .bindPopup("<b>Hello world!</b><br />I am popup 1.")
  .openPopup();

这是一个例子:http://jsfiddle.net/P543v/

关于javascript - Mapbox:默认显示工具提示,无需单击标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890955/

相关文章:

python - 如何根据位置更改 Python 中字典中键的值?

html - 内容 :attr(); not working in IE 10

python - 如何在一个键下创建一个具有多个值的特殊字典?

c++ - Operator 为多个任务重载下标和赋值运算符

自定义事件中延迟的 JavaScript

css - 更少的 css 不透明度 child

html - 我安装 jekyll 时只生成一些文件

javascript - Angular Directive(指令)的 UMD 模式

javascript - 当有数据库调用时,调用验证 Jscript 函数的正确方法是什么?

javascript - 单击特定区域时,Kendo ui 可排序触发开始事件