gpt4 book ai didi

javascript - 如果 OpenLayers 3 中关闭 div,则删除 'singleclick' map 事件

转载 作者:行者123 更新时间:2023-12-03 08:37:25 25 4
gpt4 key购买 nike

我在 OpenLayers 3 web map 上有一个按钮,单击该按钮会激活一个功能,当用户单击 map 时,该功能会在 div 中返回 Google 街景图像。

这工作正常,但我想做的是在关闭 div 时在 map 点击功能上禁用此功能。

目前我有:

$("#street-view").click(function() {
map.on('singleclick', function(evt) {
var coord = evt.coordinate;
var x = coord[0];
var y = coord[1];
var os1w = new OSRef(x, y);
var coordres = os1w.toLatLng(os1w);
coordres.OSGB36ToWGS84();
xResult = coordres.toLatString();
yResult = coordres.toLngString();
var sv = new google.maps.StreetViewService();
panorama = new google.maps.StreetViewPanorama(document.getElementById('street-view-image'));
var googleCoord = new google.maps.LatLng(xResult,yResult);
sv.getPanorama({location: googleCoord, radius: 20}, getStreetViewImage);
});
});

function getStreetViewImage(data, status) {
if (status === google.maps.StreetViewStatus.OK) {
panorama.setPano(data.location.pano);
panorama.setPov({
heading: 0,
pitch: 0
});
$('#street-view-pane').fadeIn("slow");
panorama.setVisible(true);
} else {
$("#street-view-image").html("Sorry! No Street View images are available at this location.");
}
}


$("#close-street-view").click(function(evt) {
$('#street-view-pane').fadeOut("slow");
});

我尝试在 for 循环内创建一个 if 语句来表示循环是否大于 0 并且 div 已打开,然后运行代码(因此,如果 div 未显示,则不执行任何操作) - 但这不会不起作用。

是否有一种简单的方法可以在 div 关闭后停止单击事件?我有一个单击事件,用于标识 map 上的功能,该功能在页面加载时启用,因此我无法禁用所有单击功能。

谢谢

最佳答案

on方法ol.Map返回该事件监听器的唯一键。如果您希望能够取消事件监听器,请保存该键并将其与 unByKey 一起使用。方法。

关于javascript - 如果 OpenLayers 3 中关闭 div,则删除 'singleclick' map 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33168090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com