一个简单的问题:访问Mapbox GL JS中的Geolocate控件需要什么选择器?
您可以轻松访问所有各种地图控件以添加属性,例如标题标签,可访问性标签(咏叹调标签等),甚至可以启用引导工具提示和数据切换等等。
但是,尽管使用了多种尝试的选择器,但我还是无法通过直接的javascript或jquery访问Geolocate Control。它根本不响应我尝试过的任何事情。
下面是显示情况的jsfiddle。这是添加标题属性的简单情况。我在导航控件上成功显示了它,然后在geolocate控件上显示了失败。
这只是一些明显的选择器错误,还是我缺少的geolocate控件有根本不同?还是这是一个错误? https://jsfiddle.net/5413yjmr/
作品:
document.querySelector('.mapboxgl-ctrl-compass').setAttribute('title', 'Compass Control');
不起作用:
document.querySelector('.mapboxgl-ctrl-geolocate').setAttribute('title', 'Find My Current Location');
也不起作用:
document.querySelector('.mapboxgl-ctrl-icon.mapboxgl-ctrl-geolocate').setAttribute('title', 'Find My Current Location');
我也非常疯狂地尝试各种不同的选择器,使用jquery到达它们,等等。
答案 0 :(得分:0)
仅当浏览器是否支持地理定位的异步响应之后才设置GeolocateControl UI按钮,因此DOM中不会立即提供它。
当用户界面准备就绪时,控件不会触发任何事件,因此您唯一的选择是每100毫秒左右通过一次轮询进行一次检查。
我建议您在https://github.com/mapbox/mapbox-gl-js/issues打开一个票证,以在Mapbox GL JS中得到解决。
PS。我还建议您打开有关标题属性的票证,这听起来像个好主意,应该自动完成。