所以我在这里真的很努力,但我不能让它自己工作。
我在我的网络应用程序上创建了一个 gmap。它在地图上用红色标记显示我数据库中的公司。现在我想为每个标记添加一个事件监听器,这样每当用户单击一个标记时,只有这家公司会显示在地图右侧的列表中。
我使用了gem geocoder。这是我认为创建地图的代码:
<div
id="map"
style="width: 100%;
height: 600px;"
data-markers="<%= @markers.to_json %>"
></div>
这是我的地图文件:
import GMaps from 'gmaps/gmaps.js';
const mapElement = document.getElementById('map');
if (mapElement) { // don't try to build a map if there's no div#map to
inject in
const map = new GMaps({ el: '#map', lat: 0, lng: 0 });
const markers = JSON.parse(mapElement.dataset.markers);
map.addMarkers(markers);
if (markers.length === 0) {
map.setZoom(2);
} else if (markers.length === 1) {
map.setCenter(markers[0].lat, markers[0].lng);
map.setZoom(14);
} else {
map.fitLatLngBounds(markers);
}
markers.clickable
}
import { autocomplete } from '../components/autocomplete';
// [...]
autocomplete();
所以我对 Javascript 很不满意,但我检查了我的页面,发现每个标记都有一个不同的“标签”,称为“usemap”,后面跟着 gmimap 和我数据库中的公司编号。
我尝试了一切来选择这个“usemap”,但要么我太愚蠢而无法选择它,要么它不能以这种方式工作,因为 Javascript 无法从那里获取此信息。
真的希望有人在这里有一个简单的解决方案..提前谢谢你