1

使用mapbox选择一个位置后如何关闭搜索结果?我正在使用 mapbox 的自动完成功能,但在选择特定位置后,它并没有关闭搜索结果框。我添加了这样的自动完成功能:

geocoder = L.mapbox.geocoderControl('mapbox.places', {position: 'topleft', keepOpen: true, autocomplete:true});
            geocoder.addTo(map);
4

2 回答 2

2

删除该keepOpen选项(使其始终打开)然后关闭监听实例select上的事件L.mapbox.geocoderControl。被解雇时使用该_toggle方法。

var geocoder = L.mapbox.geocoderControl('mapbox.places', {
    position: 'topleft',
    //keepOpen: false,
    autocomplete:true
});

geocoder.addTo(map);

geocoder.on('select', function () {
    geocoder._toggle()
})

未记录并使用“私有”方法,因此我不确定此解决方案/黑客的生命周期。但它有效;)

于 2015-10-18T09:44:57.927 回答
1

我有同样的问题并设法解决它:

var geocoder = L.mapbox.geocoderControl('mapbox.places', {
    position: 'topleft',
    keepOpen: true,
    autocomplete:true
});

geocoder.addTo(map);

geocoder.on('select', function () {
  this._results.innerHTML = '';
  this._input.value = '';
})

_toggle() 解决方案对我不起作用,因为它使该字段永远关闭(单击放大镜图标时无法再次打开它)。

就像在@iH8 修复中一样,它只是关于私有方法,所以它可能不会持久。

于 2016-03-21T14:12:14.503 回答