Возможно ли уменьшить код? [требует правки]

255
04 июня 2017, 17:56

Вот код:

function fastmenu() 
{
    let menu = document.getElementById('actions');
    if (menu.style.opacity != 1)
    {
        return menu.style.opacity = 1;
    }
    menu.style.opacity = 0;
}

пытался сделать так

let menu = document.getElementById('actions').style.opacity;

и так:

let menu = document.getElementById('actions');
let opacity = menu.style.opacity;

Не работает. Ваш взгляд на то, почему это не работает и как это можно исправить?

Answer 1

Объекты копируются по ссылке, а примитивы по значению. В вашем первом случае вы в переменную menu копируете ссылку на объект, представляющий элемент DOM, изменяя свойства переменной menu вы изменяете и свойства этого элемента. Во втором и третьем случаях предположу, что вы скорее всего копируете в переменную значение свойства opacity, которое не является объектом, поэтому изменяя значение этой переменной, вы ни на что не влияете.

Короче можно записать через тернарный оператор, но сути это не изменит.

function fastmenu() 
{
    let menu = document.getElementById('actions');
    menu.style.opacity = menu.style.opacity != 1 ? 1 : 0;
}
READ ALSO
Перескакивает блок div в safari

Перескакивает блок div в safari

Всем приветПроблема на скрине, меню уходит вниз на Safari

211
Массивы с длиной, представленной Int64

Массивы с длиной, представленной Int64

Добрый день, господа! Ни для кого не секрет, что у массивов есть такое поле, как LongLength и GetValue, одна из перегрузок которого принимает longИз этого...

280
Как дождаться завершения работы ThreadPool

Как дождаться завершения работы ThreadPool

Добрый день, подскажите как быть

293
Анимирование невидимости

Анимирование невидимости

привет кто шарит в анимации xaml можно ли как через xaml сделать картинку невидимой Питаюсь так не не выходит

266