0

私は Bing Maps API を使用していますが、この問題で壁にぶつかっています。ピンをクリックするとインフォボックスが表示されます。ただし、ピンをクリックし続けると、さらに多くのインフォボックスが開き続けます。これを防ぎ、情報ボックスを 1 つだけ開いておくにはどうすればよいですか?

// 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);
    }
};
4

1 に答える 1

0

プッシュピンがクリックされるたびに、新しいインフォボックスを作成しています。インフォボックスを処理するより効率的な方法は、インフォボックスを作成して再利用することです。これを行う方法を概説するブログ投稿を次に示します。

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

于 2015-12-09T19:10:47.610 に答える