तार की एक सरणी से घटाना स्ट्रिंग

वोट
0

मैं एक सरणी है toggleableLayerIdsकि मेरे मानचित्र में सभी तीन परतों को दर्शाता है। इन परतों में क्लिक करने योग्य लिंक कर रहे हैं #menu। लोड होने पर, सभी परतों के हैं अदृश्य (वे एक एक संपत्ति कहा जाता है invisibility, जो या तो करने के लिए सेट किया जा सकता है visibleया none)। नीचे दिए गए कोड में, परत है कि मेनू में क्लिक किया जाता है चर को असाइन किया गया clickedLayerहै, जो तब के लिए एक स्ट्रिंग के रूप में पारित हो जाता है map.getLayoutProperty. तो यह दिखाई दे रहा है, तो क्लिक करने से वह यह अदृश्य बना देता है, और इसके विपरीत। तो परतों को एक दूसरे के शीर्ष पर जोड़ा जा सकता है।

मेरे उद्देश्य यह है कि जब एक परत मेनू में क्लिक किया जाता है, बनाने के लिए है ही अन्य सभी परतों के लिए किसी से उस परत दिखाई और सेट दृश्यता। असल में, क्या मेरा मतलब है कि अगर वहाँ एक चर थे var = unclickedLayers, मैं करने के लिए है कि सरणी में सभी स्ट्रिंग्स पास करना चाहते हैं map.setLayoutPropertyऔर फिर सेट visibilityकरने के लिए none। या, वैकल्पिक रूप से, अगर एक परत दिखाई दे रहा है, निष्क्रिय करने के लिए map.setLayoutProperty()कार्य करते हैं।

मेरा प्रश्न कैसे एक घटाना होता है, है clickedLayerसे toggleableLayerIds, जो तब एक चर सौंपा जा सकता है और पारित कर दिया map.setLayoutProperty के लिए?

var toggleableLayerIds = ['parcel_06', 'parcel_11', 'parcel_16'];
for (var i = 0; i < toggleableLayerIds.length; i++) {
    var id = toggleableLayerIds[i];

    var link = document.createElement('a');
    link.href = '#';
    link.className = 'active';
    link.textContent = id;

    link.onclick = function (e) {
        var clickedLayer = this.textContent;
        var unclickedLayer =
        e.preventDefault();
        e.stopPropagation();

        var visibility = map.getLayoutProperty(clickedLayer, 'visibility');

        if (visibility === 'visible') {

            map.setLayoutProperty(clickedLayer, 'visibility', 'none');
            this.className = '';
        } else {
            this.className = 'active';
            map.setLayoutProperty(clickedLayer, 'visibility', 'visible');
        }
    };

    var layers = document.getElementById('menu');
    layers.appendChild(link);
}
28/11/2016 को 00:58
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more