Bing地图API防止相同的信息框在当前打开时打开



我正在使用必应地图API,遇到了这个问题。单击某个引脚后,弹出提示框。然而,如果你继续点击大头针,它会继续打开更多的信息框。我如何防止这种情况,只打开一个信息框?

// MAP FUNCTIONS
Map.prototype.addPins = function (pins) {
    if (!pins.length) return;
    var bing = getBing(this);
    var showPopup = function (e) {
        var pin = e.target,
            infoboxOptions = { pushpin: pin },
            infobox = new Microsoft.Maps.Infobox(pin._location, infoboxOptions);
        infobox.setHtmlContent(pin._data.popup);
        bing.entities.push(infobox);
        $('a.close').on('click', function () {
            infobox.setHtmlContent("");
        });
    };
    for (var i = 0; i < pins.length; i++) {
        var pin = new Microsoft.Maps.Pushpin(pins[i].position, {
            draggable: false,
            htmlContent: '<i class="icon ' + pins[i].cssClass + '" />'
        });
        pin._data = pins[i];
        Microsoft.Maps.Events.addHandler(pin, 'click', showPopup);
        bing.entities.push(pin);
    }
};

每次单击图钉时都会创建一个新的信息框。处理信息框的一种更有效的方法是创建一个并重用它。这里有一篇博客文章概述了如何做到这一点:

https://rbrundritt.wordpress.com/2011/10/13/multiple-pushpins-and-infoboxes-in-bing-maps-v7/

最新更新