哎哟! 我头疼。在这个问题上工作了几个小时,我的大脑正在自行折叠。
基本上,Isotope 在我的页面上隐藏或显示 html 元素,我需要以非常有效的方式隐藏或显示嵌入地图上的相应 Google Maps 标记(许多 Google Maps 标记)。
所以...我有一个 MASTERARRAY[] 充满了对象。数组中的每个对象都有一个唯一的 id。
即 MASTERARRAY[i].id
此 MASTERARRY[] 还具有关联的 Google 地图标记对象。
即 MASTERARRAY[i].marker
当 Isotope 在我的页面上过滤我的页面上的 HTML 元素时,我将具有唯一 id 的对象推送到以下数组之一:
ISOTOPEFILTER.resultsRemovedFromPage
ISOTOPEFILTER.resultsOnPageAfterFiltering
下面的代码将通过将 MASTERARRAY 与 ISOTOPEFILTER.resultsRemovedFromPage 进行比较,成功地从我的地图上移除标记。但是,我不知道如何有效地让这个函数也显示谷歌地图标记,他们的 ID 存在于 ISOTOPEFILTER.resultsOnPageAfterFiltering 数组中。
function updateMap() {
var hiddenMarkerCount = 0;
for (i in ISOTOPEFILTER.resultsRemovedFromPage) {
for (var j=0; j<MASTERARRAY.length; j++) {
if (ISOTOPEFILTER.resultsRemovedFromPage[i].id == MASTERARRAY[j].id){
hiddenMarkerCount++;
MASTERARRAY[j].marker.setMap(null);
break;
}
}
}
console.log("We have hidden"+hiddenMarkerCount+" markers");
}