Почему не могу получить атрибут предыдущего элемента?

Пытаюсь решить вопрос с формированием виджета меню по типу меню wordpress. То есть меню должно при помощи jQuery UI sorttable двигаться в верх вниз и по горизонтали. Для вычисления вложенности я использую атрибут data-depth причем у первого элемента data-depth всегда равна 0. Если элемент меняет уровень атрибут data-depth меняется +1,+2 (в зависимости от уровня вложенности.
Причем если data-depth предыдущего элемента = 0 у текущего больше чем на один она измениться не может. Но тут как говориться неждана параска снискала украйнських футболистов вот собсвутено часть кода которая получает атрибут data-depth предыдущего элемента
prev = ui.item.prev().data('depth');
        maxDeptch = prev + 1;//атрибут data-depth предыдущего вложенного элимента +1
        devision = Math.round((event.clientX - offset.left) / depth);//получаю количество шагов из расчета шаг 25 пикселей
        if (devision >= maxDeptch) {//если количество шагов больше чем глубина maxDeptch глубина вложения не может быть глубже maxDeptch
            classDeptch = maxDeptch;
        } else {
            classDeptch = devision;
        }


суть в чем если атрибут data-depth не менялся то я точно могу получить его атрибут а вот если менялся то я получаю предыдущий атрибут
Собственно вот весь код здесь
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@Sayonji
Замените ui.item.attr('data-depth', (classDeptch)); на ui.item.data('depth', (classDeptch));
jQuery кеширует data-аттрибуты после чтения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы