Приветствую,
есть код который хочу оптимизировать, подскажите пожалуйста как лучше сделать, есть идея хранить $(item).next() $(item).prev() как переменные и использовать их. возможно ли сделать что то получше? интересует именно скорость работы, спасибо
MultiPicker.updateClasses = function (item, className) {
if ($(item).hasClass(className)) {
if ($(item).next().hasClass(className) && $(item).prev().hasClass(className)) {
if ($(item).next().next().hasClass(className)) {
$(item).next().removeClass();
$(item).next().addClass(className + " center-side");
} else {
$(item).next().removeClass();
$(item).next().addClass(className + " right-side");
}
if ($(item).prev().prev().hasClass(className)) {
$(item).prev().removeClass();
$(item).prev().addClass(className + " center-side");
} else {
$(item).prev().removeClass();
$(item).prev().addClass(className + " left-side");
}
$(item).removeClass();
$(item).addClass("active center-side");
} else if ($(item).next().hasClass(className) && !$(item).prev().hasClass(className)) {
if ($(item).next().next().hasClass(className)) {
$(item).next().removeClass();
$(item).next().addClass(className + " center-side");
} else {
$(item).next().removeClass();
$(item).next().addClass(className + " right-side");
}
$(item).removeClass();
$(item).addClass("active left-side");
} else if (!$(item).next().hasClass(className) && $(item).prev().hasClass(className)) {
if ($(item).prev().prev().hasClass(className)) {
$(item).prev().removeClass();
$(item).prev().addClass(className + " center-side");
} else {
$(item).prev().removeClass();
$(item).prev().addClass(className + " left-side");
}
$(item).removeClass();
$(item).addClass(className + " right-side");
}
} else {
if ($(item).next().hasClass("right-side")) {
$(item).next().removeClass();
$(item).next().addClass(className);
}
if ($(item).prev().hasClass("left-side")) {
$(item).prev().removeClass();
$(item).prev().addClass(className);
}
if ($(item).prev().hasClass("center-side")) {
$(item).prev().removeClass();
$(item).prev().addClass(className + " right-side");
}
if ($(item).next().hasClass("center-side")) {
$(item).next().removeClass();
$(item).next().addClass(className + " left-side");
}
}
полный код здесь
https://github.com/styopdev/multiPic...multipicker.js