1

mapboxを使用して 1 つの場所を選択した後に検索結果を閉じる方法は? 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 の修正のように、private メソッドについてのみなので、長続きしない可能性があります。

于 2016-03-21T14:12:14.503 に答える