Как сделать другие чекбоксы неактивными, если 1 из чекбоксов нажат

let checkboxes = document.querySelectorAll('.custom-checkbox')
     let filterButton = document.querySelector('.filter__button button')
     let filterReset = document.querySelectorAll('.filter__reset button')
     
     for (let checkbox of checkboxes) {
       checkbox.addEventListener('click', function () {
          
         if (this.checked == true && this.id == "metro-0") { 
                filterButton.addEventListener('click', function () {
                     objectManager.remove(collection)
                     objectManager.add(collection.features[0])
                })    
            }
            
            else if (this.checked == true && this.id == "metro-1"){
                filterButton.addEventListener('click', function() {
                    objectManager.remove(collection)
                    objectManager.add(collection.features[1])
               }) 
            }

            else if (this.checked == true && this.id == "metro-2"){
                filterButton.addEventListener('click', function() {
                    objectManager.remove(collection)
                    objectManager.add(collection.features[2])
               }) 
            }

            else if (this.checked == true && this.id == "metro-3"){
                filterButton.addEventListener('click', function() {
                    objectManager.remove(collection)
                    objectManager.add(collection.features[3])
               }) 
            } 
                
            else {
                objectManager.add(collection);  
            }
        
       })
       
    }

Ответы (1 шт):

Автор решения: Pr0gramm1st

В данном случае можно попробовать вот так: в условие if (this.checked === true && this.id == "metro-<id_checkbox>") добавить вначале

checkboxes.forEach(checkbox => {
    checkbox.disabled = true;
});
    this.disabled = false;

Вот только мы дважды бежим по одному и тому же массиву через цикл. Но лучше пока не придумал :)

P.S. И, конечно же, стоит вынести этот повторяющиеся код в функцию

→ Ссылка