Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2019, 15:27
Новичок на форуме
Отправить личное сообщение для Фаниль Посмотреть профиль Найти все сообщения от Фаниль
 
Регистрация: 12.11.2019
Сообщений: 3

Замыкание Js( Help )
Проблема такая я обьявил переменную глобально
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 чтобы она изменилась глобально
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2019, 15:39
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Фаниль
после проверка
Если эта проверка идёт сразу в коде, то она будет показывать false, поскольку ещё мышка не наводилась!

Если у вас реально есть элемент .hover_2, то после наведения переменная поменяется на true, можете проверить
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2019, 15:51
Новичок на форуме
Отправить личное сообщение для Фаниль Посмотреть профиль Найти все сообщения от Фаниль
 
Регистрация: 12.11.2019
Сообщений: 3

Может что то я путаю, но при наведении на .hover_2 have должен меняется на true; и должно срабатывать console.log('trueee'); в этой проверке (if (have == true ) {
console.log('trueee')
}
else {
setInterval(randFunc, 6500);
})
но срабатывает ветка else
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2019, 16:14
Новичок на форуме
Отправить личное сообщение для Фаниль Посмотреть профиль Найти все сообщения от Фаниль
 
Регистрация: 12.11.2019
Сообщений: 3

Задача у меня такая.Есть схема где проходят определенные анимации при наведении на какую нибудь часть схемы эта часть закрашивается реализовал таким кодом
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
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2019, 17:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Фаниль,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу JS разработчиков в лесу Kenjuy27 Работа 0 18.07.2018 09:06
Стажер в сфере JS фреймворков Zhanadil1509 Работа 0 30.07.2017 14:45
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28