вот моя проблема:
У меня есть боковая панель шириной 300 пикселей, пользователь может скрыть ее часть, а затем боковая панель может иметь ширину 100 пикселей. Я хотел бы добавить класс к элементу, когда боковая панель скрыта, а когда она заполнена, я хотел бы удалить класс из этого элемента. Когда я скрываю часть скрипта боковой панели, хорошо работает, но когда я показываю его снова. переменная элемент не определен. Кто-то может объяснить мне, почему?
Вот моя функцияjQuery как установить селектор в переменную
function checkSidebarWidth()
{
var sidebarWidth = $('.sidebar').width();
var element;
if(sidebarWidth <= 100){
element = $('.sidebarWidth .nav > li > a.active').parents('ul').prev().children();
element.addClass('active');
}else{
if(!typeof(element) === 'undefined'){
element.removeClass('active');
}
}
setTimeout(checkSidebarWidth, 100);
}
Каждый раз, когда вы вызываете эту функцию, вы объявляете новый var с именем 'element', который начинается с undefined. Если ваш sidebarWidth не выполнил первое условие if, он остается неопределенным, поэтому никогда не вводит 'else if' – tymeJV
@Willem OP проверяет элемент не undefined –
if (! Typeof (element) === 'undefined') должен быть, если (! (typeof (element) === 'undefined')) –