OpenLayers 3添加信息弹出元素返回null

时间:2016-06-21 15:25:26

标签: jquery angularjs openlayers-3

单击矢量图层要素时,我正在尝试弹出窗口。

这与地图相同.cshtml页面......

<div id="popup" title="Welcome to ol3">
        &nbsp;
    </div>

然后在一个单独的.js文件中,我正在加载地图,我创建了弹出窗口 添加它......

var popup = new ol.Overlay({
        element: document.getElementById('popup')
    });
    map.addOverlay(popup);

然后在map.on('click')...

var element = popup.getElement();
        var coordinate = evt.coordinate;
        $(element).popover('destroy');
        popup.setPosition(coordinate);
        // the keys are quoted to prevent renaming in ADVANCED mode.
        $(element).popover({
            'placement': 'top',
            'animation': false,
            'html': true,
            'content': '<p>Something happened...good for you</code>'
        });
        $(element).popover('show');

但是document.getElementById(“popup”)返回“null”

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

感谢@Neelesh的回复,这似乎是OL3代码更改并运行到过时示例的情况,这种情况经常发生,因为库变化很大。使用你在小提琴中提供的例子,我改变了......

var element = popup.getElement();
    var coordinate = evt.coordinate;
    angular.element(element).popover('destroy');
    popup.setPosition(coordinate);
    // the keys are quoted to prevent renaming in ADVANCED mode.
    $(element).popover({
        'placement': 'top',
        'animation': false,
        'html': true,
        'content': '<p>Something happened...good for you</code>'
    });
    $(element).popover('show');

要...

 var coordinate = evt.coordinate;
        document.getElementById('popup-content').innerHTML = '<p>It is working</p>';
        popup.setPosition(coordinate);

...这有助于显示弹出窗口,现在我只需要弄清楚如何确定我点击了哪个矢量图层要素:)