#javascript #jquery #variables #undefined
Вопрос:
Привет, я получаю ошибку JS в инспекторе браузера. Но я не понимаю, что не так с моим кодом Jquery. И почему он считает эту переменную неопределенной … Кто-нибудь может мне помочь ?
Код работает хорошо; но я бы предпочел удалить ошибку: неучтенная ошибка типа: varposlist не определен
Это мой js-код:
$(function(){ var pane = $('.scroll-pane'); pane.jScrollPane({ }); var api = pane.data('jsp'); if(typeof localStorage!='undefined') { //Get var from local storage var menu = sessionStorage.getItem("menu"); var yposistock_rule = sessionStorage.getItem("yposistock_rule"); //Check menu view mode if(menu == "arbo") { // defined top from a#on anchor var varposchapter = $('a#on_menuchapter').offset(); //add - 285 to put at same level than title var vartop1 = varposchapter.top -285 -yposistock_rule; if(scrollauto_rule == "oui") { sessionStorage.removeItem("yposistock_rule"); }; api.scrollTo(0, vartop1); return false; } else{ // defined top from a#on anchor var varposlist = $('a#on_menulist').offset(); //add - 285 to put at same level than title var vartop2 = varposlist.top -285 -yposistock_rule; if(scrollauto_rule == "oui") { sessionStorage.removeItem("yposistock_rule"); }; api.scrollTo(0, vartop2); return false; } } });
Есть идеи ? Большое спасибо.
Ответ №1:
Единственное, о чем я могу думать, это эта строчка:
$('a#on_menulist').offset();
#
Выбирается элемент с тем же идентификатором. Если у вас нет элемента с идентификатором=on_menulist, этот код не может найти идентификатор, который затем не может найти смещение.
Комментарии:
1. Хорошо, мой плохой, эта ошибка произошла только на домашней странице, где идентификатор не определен. Спасибо за этот очевидный ответ 😉 У вас есть какие-нибудь идеи, как я мог бы сделать сценарий условным, чтобы избежать ошибки ?
2. Исправлено путем добавления условия ‘if ( $(‘#on_menulist). длина ) { // существует } еще { // не существует }’