@Fanil877

Проблема с Замыкание JS?

Проблема такая я обьявил переменную глобально
let have = false;
далее идет функция наведения мыши
где я ее переопределяю
$(".hover_2").mouseover(function () {
    have = true;
    setTimeout(function () {
      $(".sheme-in").css({ "display": "none" });
      $(".sheme-in2").css({ "display": "block" });
    
    }, 100);
})

после проверка
if (have == true ) {
  console.log('trueee')
}
else {
  setInterval(randFunc, 6500);
}

но при наведении мыши если я в консоле вывожу console.log(have) он выдает false то есть она глобально не поменялось на true
как мне внутри функции ее изменить на true чтобы она изменилась глобально
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Вы какие-то костыли городите. Что вам нужно сделать по итогу?
Проверка не срабатывает потому, что события mouseover не случилось ещё на момент проверки.
Ответ написан
@Fanil877 Автор вопроса
Задача у меня такая.Есть схема где проходят определенные анимации при наведении на какую нибудь часть схемы эта часть закрашивается реализовал таким кодом
const nine = function () {
$(".layer10").css({ "display": "none" });
$(".layer11").css({ "display": "none" });
$(".sheme-in").css({ "display": "none" });
$(".sheme-in2").css({ "display": "block" });
$(".layer10-hover").css({ "display": "block" });
$(".layer11-hover").css({ "display": "block" });
};
$(".hover_8").mouseover(function () {
have8 = true;
setTimeout(nine, 100);
}); теперь же нужно когда мышка не наведена на эту схему рандомная область закрашивалась
const arrFunc = [one, two, three, four, five, six, seven, eight, nine];
randFunc = () => {
arrFunc[Math.floor(Math.random() * arrFunc.length)]();
}
if (have1 == true || have2 == true || have3 == true || have4 == true || have5 == true || have6 == true || have7 == true || have8 == true || have9 == true) {
console.log('true')
}
else {
setInterval(randFunc, 6500);

В итоге рандомное закрашивание срабатывает, мне нужно чтобы когда наводилась мышка на область схемы не работала рандомное закрашивание я подумал сделать через условие если хотя бы один have true то ничего не произойдет если же все false то сработает функция закрашивания setInterval(randFunc, 6500); В итогу у меня при наведении have всегда false
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы