У меня есть несколько Div на макете, каждый из которых перетаскивается, поэтому есть возможность перетаскивать их в позиции, где они будут перекрываться.Установите zIndex программно на Div в AngularJS
Я хочу установить последнее сделанное видимое div, чтобы иметь значение z-index, равное +1 от последнего, и для этого я использую переменную $ scope.nextIndex, которая увеличивается каждый раз, когда один из div сделанный видимым.
Каждый div имеет свою переменную для отслеживания собственного значения z-индекса: $ scope.one_zIndex, $ scope.two_zIndex, $ scope.three_zIndex и каждому правильному присваивается пошаговое большее значение по мере отображения каждого div, скрытого и показано снова.
Каждый ДИВ имеет свой собственный класс: one_z, two_z, three_z
То, что я не могу сделать работу является назначение переменной в стиле г-индекс на дивы себя через контроллер.
var myVar = document.getElementsByClassName("one_z");
Если я вхожу на консоль, я получаю то, что я ожидал - массив с одним элементом [0]
[]
0 : div#one_z
length : 1
one_z : div#one_z
__proto__ : HTMLCollection
Я предположил бы, что я мог бы установить г-индекс просто так :
myVar[0].style.zIndex = $scope.one_zIndex;
Однако это выдает ошибку:
Uncaught TypeError: Cannot set property 'zIndex' of undefined
Что мне не хватает? Или есть лучший способ сделать это?
К сожалению ** ng-style **, похоже, не работает в этом случае. Это было мое первоначальное решение, но div никогда не получал значения z-index, применяемые к ним, поэтому я теперь пытаюсь использовать jQuery для обновления DOM после того, как все будет визуализировано. –
Вот рабочий плункер https://plnkr.co/edit/aaDipIWdqpajghc2F2Da?p=preview, как вы можете видеть, нет проблем с z-index и div. И это 100% -ный угловой способ решения этого случая. – Kindzoku
Этот синтаксис был там, где у меня была проблема - myVar.styles = {'z-index': myIndex}; где я использовал myVar.style.zIndex, и вы правы - это то, что я надеялся сделать. –