Как исправить ошибку в JS?

Доброго времени суток, уважаемое сообщество!

Есть скрипт, реализующий переход фона при клике:
function initSlidingButton() {

            var $el, leftPos, newWidth;
                $mainNav2 = $(".tabs-home__nav");
            
            $mainNav2.append("<li id='magic-line-two'></li>");
            
            var $magicLineTwo = $("#magic-line-two");

            $magicLineTwo
                .width($(".tabs-home__nav__item").width())
                .height($mainNav2.height())
                .css("left", $(".tabs-home__nav__item a.current").position().left)
                        
            $(".tabs-home__nav__item a").click(function() {
                $el = $(this);
                leftPos = $el.position().left;
                newWidth = $el.parent().width();
                $magicLineTwo.stop().animate({
                    left: leftPos,
                    width: newWidth,
                })    
            });
            
            /* Kick IE into gear */
            $(".tabs-home__nav__item a").mouseenter();

    }


UPD
Ошибка в этой строке:
.css("left", $(".tabs-home__nav__item a.current").position().left)


При переходе на другие страницы сайта консоль выводит следующее:
Uncaught TypeError: Cannot read property 'left' of undefined

Как я понял, элемент с классом .tabs-home__nav__item a.current становится undifined и отсюда причина данной ошибки.

Как можно ее устранить? Написать какое-то условие или что-то в этом роде?
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Можно переделать так, чтобы всегда был хотя-бы один элемент .current
Или проверять на нулевое кол-во if($(".tabs-home__nav__item a.current").lenght == 0) и подставлять какое-то значение по умолчанию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы