Javascript.RU

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

Остановить движение заголовка по клику
Доброго времени суток!
Я первый раз на этом форуме и хочу попросить помочь советом/литературой, пожалуйста. В js новичок, не судите строго.
clearIntervar всегда срабатывает сразу же после его написания? Я хочу, чтобы заголовок останавливался по клику => в первой ф-ции заголовок движется (код рабочий), а во второй ф-ции прописываю условие "если кликаю по заголовку, то clearIntervar".
Подскажите на что обратить внимание!

let count = 0;
let direction = "right";
$("#heading").offset({left: count, top: count});

function moveHeading ()
{
	if (direction === "right") {
		$("#heading").offset({left: count});
		count++;
		
		if (count > 100) {
			count = 0;
			direction = "down";
		}
	}
	
	 else if (direction === "down") {
		$("#heading").offset({top: count});
		count++;
		
		if (count > 100) {
			count = 100;
			direction = "left";
		}
	}
	
	else if (direction === "left") {
		$("#heading").offset({left: count});
		count--;
		
		if (count < 0) {
			count = 100;
			direction = "top";
		}
	}
	
	else if (direction === "top") {
		$("#heading").offset({top: count});
		count--;
		
		if (count < 0) {
			count = 0;
			direction = "right";
		}
	}
	
}

function stop () {
	if ($("#heading").click(moveHeading)) {
		clearInterval(idHeading);
	}
}

let idHeading =  setInterval(moveHeading, 30);
stop();
Ответить с цитированием
  #2 (permalink)  
Старый 21.08.2017, 12:40
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

Сообщение от plug-ugly
clearIntervar всегда срабатывает сразу же после его написания?
да.

Сообщение от plug-ugly
Подскажите на что обратить внимание!
let - относительно новая конструкция, не всеми браузерами поддерживается. Лучше заменить на var.
function stop () {
    $("#heading").click(function() {
        clearInterval(idHeading);
    });
}
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2017, 19:00
Интересующийся
Отправить личное сообщение для plug-ugly Посмотреть профиль Найти все сообщения от plug-ugly
 
Регистрация: 21.08.2017
Сообщений: 27

Спасибо! Все заработало!
Проблема даже не в let была, а в том, что я намудрил немного в коде. Написал, как вы указали - и понял, что все просто.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как остановить Progress Bar по клику NellDenZ Элементы интерфейса 3 16.11.2016 00:52
Как остановить рекурсивную функцию по клику? Lutidza Общие вопросы Javascript 7 23.01.2016 16:41
По клику на картинку с ссылкой открывается портфолио, а нужен переход по ссылке nitoiti Общие вопросы Javascript 7 08.09.2014 14:39
Открытие/закрытие дива по клику ссылки и закрытие по клику вне слоя vertmann Общие вопросы Javascript 3 18.11.2013 14:36
Помогите сделать так чтоб по клику открывалось и по клику же закрывалось Maxsl_89 Элементы интерфейса 1 25.10.2013 16:11