如何在使用 mapbox 选择一个位置后关闭搜索结果

how to close the search result after selecting one location using mapbox

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

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

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

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

geocoder.addTo(map);

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

未记录并使用 'private' 方法,因此我不确定此 solution/hack 的寿命。但它有效 ;)

我遇到了同样的问题并设法解决了这个问题:

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 修复一样,它只是关于私有方法,所以它可能不会持久。