-1
嗨我設法得到這個工作,所以標記加載並有多個類別分配給每個。谷歌地圖API3 - 過濾器(每個標記的多個選項)
過濾器的工作方式是匹配複選框和標記的值,如果不相等,則標記的可見性設置爲無。
我的問題是複選框沒有考慮到其他複選框,我現在卡住了。
任何指導的幫助,非常感謝!
嗨我設法得到這個工作,所以標記加載並有多個類別分配給每個。谷歌地圖API3 - 過濾器(每個標記的多個選項)
過濾器的工作方式是匹配複選框和標記的值,如果不相等,則標記的可見性設置爲無。
我的問題是複選框沒有考慮到其他複選框,我現在卡住了。
任何指導的幫助,非常感謝!
無論選中或取消選中哪個複選框,您都需要迭代所有標記。您需要使用下面給出的代碼。它檢查每個標記的類別,並且只有在沒有選中適用於該標記的類別時纔將其可見性設置爲false。
/**
* Function to filter markers by category
*/
$(".marker_filter").click(function() {
for (i = 0; i < gmarkers1.length; i++) {
marker = gmarkers1[i];
var setVisible = false;
for (j = 0; j < marker.category.length; j++) {
setVisible = $("#" + marker.category[j]).is(":checked") || setVisible
}
marker.setVisible(setVisible);
}
});
您需要爲複選框設置一個ID,並使其在HTML文件中默認選中。
<input type="checkbox" class="marker_filter" name="Option 1" value="option1" id="option1" checked/>
<input type="checkbox" class="marker_filter" name="Option 2" value="option2" id="option2" checked/>
<input type="checkbox" class="marker_filter" name="Option 3" value="option3" id="option3" checked/>
這是完美的,謝謝你的幫助! – Codetopixels
請張貼[最小,完全,可覈查示例](http://stackoverflow.com/help/mcve)。 –
對不起,請在這裏找到:https://jsfiddle.net/emux5evL/2/ – Codetopixels