如何从 Openlayer 3 地图中删除 JQuery 单击事件

How to remove a JQuery click event from an Openlayer 3 map

我需要通过 JQuery 删除 Openlayers 3 地图上的点击事件。

map.on 函数在单选按钮的更改中,最终创建了多个单击实例

map.on('click', function (evt) {

        var url = temperatura.getSource().getGetFeatureInfoUrl(
        evt.coordinate, viewResolution, viewProjection,
        {
           'INFO_FORMAT': 'application/json',
        });
        if (url) {
            $.getJSON(url, function(result){
            var Umidade_Rel = result.features[0]['properties']['Temperatura_2m'];
            $('#information').removeClass('hidden');
            $('#information').css('background-color', '#eaca6a');
            $('#information p , #information h3').css('color', '#68a06f');
            $('#information').html('<h3>Temperatura</h3><p>' + Umidade_Rel.toFixed(2) + '</p>');
            });
        }
        });

已经尝试过:

 map.off('click', myFunction);

 map.removeEvent('click', myFunction);

 map.getViewport().removeEventListener('click', myFunction);

我设法用另一种方式规避了这种情况。

在我的例子中,每次用户更改图层时都会创建一个点击事件,因此即使从地图中删除图层,活动的点击事件仍然存在(显示已删除图层的信息)

由于情况紧急,我设法通过检查活动图层来规避这种情况,并且只在地图上安排图层时才显示信息。

if (url && verifyLayer('Mylayer') == 'true'){
- code -
}

function verificaLayer(name){
    var valid = '';

    map.getLayers().forEach(function(layer){
    var layername = (layer['values ​​_']['name']);
     if(name == layername){
       valid = 'true';
     }
    });
return valid;

}