2015-10-18 9 views
0

如何使用選擇一個位置後關閉搜索結果mapbox? 我正在使用mapbox的自動完成功能,但在選擇特定位置後,它並未關閉搜索結果框。我已經添加了自動完成功能是這樣的:如何使用mapbox選擇一個位置後關閉搜索結果

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

回答

1

刪除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() 
}) 

未記錄和使用'私人'的方法,因此我不確定這種解決方案的壽命/破解。但是,它的工作原理;)

+0

Hi @ iH8感謝您的幫助。但似乎我錯過了一些東西,因爲我是新手。我添加了更新後的帖子中提到的自動完成功能。之後我需要添加功能嗎? –

+0

更新我的示例 – iH8

+0

很棒(y)它的作品:) –

0

我有同樣的問題,並設法解決它這樣的:

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()解決方案並沒有爲我工作,因爲它所做的領域密切永遠(couldn」當點擊放大鏡圖標時再次打開它)。

就像在@ iH8修復中,它只是關於私有方法,所以它可能不會持久。

相關問題