У меня есть вот такой код:
$('.neispravnost').on('click', '.ns-blok', function(){
// some code...
goToNextStep ();
}
function goToNextStep (){
if(MyProblemArray.length != 0 || MySummArray.length != 0)
$('.step2-oformit').click( function(){
$('#tochki-step2').addClass('active');
$('#nav-step3').addClass('active');
$('#order-main').find('.step-wrap').removeClass('active');
$('#step3').addClass('active');
});
}
Суть всего: у меня есть несколько элементов. Если я кликаю на какой-то элемент, он заносится в массив. Хочу сделать проверку на то, пустой ли массив, и если он НЕ пустой, то
goToNextStep ()
срабатывает. Я пробовал делать проверку как внутри функции перехода на следующий шаг, так и в самой функции, где я работаю с массивом:
if(MyProblemArray.length != 0 || MySummArray.length != 0)
goToNextStep ();
Что я делаю не так?
UPD: пока я не выбирал никаких элементов, проверка работала правильно, т.е. кнопка была недоступна к нажатию. Но если я выбирал какой-то элемент (он заносился в массив), а потом убирал (он удаляется из массива), то потом проверка не работала.
UPD 2: Массивы берутся вот отсюда (код не мой, а знаний мало, потому не знаю есть ли ошибки в коде):
// глобальные переменные
var MySummArray = [],
MyProblemArray = [],
novajasumm = 0,
datazena;
//код в функции
$(this).toggleClass('active');
datazena = $(this).attr('data-zena');
Problem = $(this).find('p').text();
var i = MySummArray.indexOf(Number(datazena));
var p = MyProblemArray.indexOf(Problem);
if (i != -1){
MySummArray.splice(i, 1);
} else {
$(this).each(function(i){
var numberu = $(this).attr('data-zena');
MySummArray.push(Number(numberu));
});
}
if (p != -1){
MyProblemArray.splice(p, 1);
} else {
$(this).each(function(i){
var newProblem = $(this).find('p').text();
MyProblemArray.push(newProblem);
});
}
console.log(MyProblemArray.join('; '));
var summitog = 0;
if(MySummArray.length != 0){
MySummArray.forEach(function(item, i, MySummArray) {
summitog += item;
});
} else {
summitog = 0;
}
UPD 3: для наглядности,
вот