我已实施Leaflet search-box扩展名。
每当我使用鼠标在地图上平移时,搜索框立即消失,用户每次都必须重新输入整个查询。
我想要搜索框和它的查询,直到用户按下清除按钮
显示:块;添加和删除以显示/隐藏搜索框。我想只允许在用户清除查询时发生崩溃,而不是鼠标移动。
或者我试图保持查询,这样用户不必每次都重新输入。通过捕获崩溃事件并存储查询。但在那时,盒子已经被清理干净,没有文字需要记住。
var timeout = {};
var oldQuery = "";
controlSearch.on('search:expanded', function () {
var searchBox = this._input;
searchBox.value = oldQuery;
this._input.onkeyup = function () {
clearInterval(timeout);
timeout = setTimeout(function () {
var query = searchBox.value;
search(query, searchItems, searchResultsLayer);
if (query.length > 0) {
if (!searchResultsShown) {
searchResultsLayer.addTo(map);
}
}
else {
if (searchResultsShown) {
searchResultsLayer.removeFrom(map);
}
}
}, 200);
};
}).on('search:collapsed', function () {
oldQuery = this._input.value;
});