Как понять логику работы функции JS?
День добрый. Не могу понять работу функции JS
При первом клике, все отлично, добавляю класс colLeft_activity и получаю элемент aside.colLeft.colLeft_activity.
При повторном клике надо убрать .colLeft_activity.
Если в саму консоль, после 1-го кли прописать console.log($('aside.colLeft.colLeft_activity').length); = 1(получаю).
Но если смотреть function openCloseMenu(search_class, old_class, selectionElement, delete_class) вижу 0.
Почему при каждом 2-ои и более клике вижу console.log(search_class.length); = 0
Вот переменные
var search_class = $('.colLeft_activity'); //The class which we search. This's a variable
var old_class = $('.colLeft'); // The element to which we will add the class. This's the variable
var selectionElement = 'colLeft colLeft_activity'; //Adds the new class. Type the text
var delete_class = 'colLeft_activity' //Class which delete. Type the text
Вот сама функция
function openCloseMenu(search_class, old_class, selectionElement, delete_class){
console.log(search_class.length);
// console.log($('.colLeft.colLeft_activity'));
if (search_class.length == 0){
old_class.addClass(selectionElement);
console.log('3333');
}
else if (search_class.length >= 1) {
console.log('55555');
//search_class.removeClass(delete_class);
$('.colLeft').removeClass('colLeft_activity');
}
};
Вызываю функцию
$('aside.colLeft').click(function(){
openCloseMenu(search_class, old_class, selectionElement, delete_class);
}
);
Заранее благодарю за помощь.
Ответы (1 шт):
Вообщем проблема была в обновлении данных, которые хранят переменные вовремя одной сессии.
Другими словами, при загрузке страницы, переменные
var old_class, var search_class, var selectionElement, var delete_class переменные загружали в себя данные.
При повторном клике, переменные не обновляли данные. Они были прописаны вне функции.
$('aside.colLeft').click(function(){
var data_length = $('.colLeft_activity').length
var old_class = $('.colLeft'); // The element to which we will add the class. This's the variable
var search_class = search_class; //The class which we search. This's a variable
var selectionElement = 'colLeft colLeft_activity'; //Adds the new class. Type the text
var delete_class = 'colLeft_activity' //Class which delete. Type the text
openCloseMenu(search_class, old_class, selectionElement, delete_class, data_length);
});
обновляет данные в переменных при каждом клике не селектор.
