Javascript.RU

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

Локальные переменный
Проблема в незнании ООП в js , я не сильно понимаю что вообще нужно гуглить , напишите название темы или хоть ссылку на ресурс с ответами .
Проблема в том что мне нужно определять нажатия пo canvas'у для этого использую вот это :
document.getElementById('canvas').addEventListener('click',function(evt){}


И я должен получить this.active переменную . Но addEventListener это функция или нет , не суть , когда я пишу this. то получаю сообщение о том что переменная не найдена , как создать глобальную переменную ?
ВОТ КОД:
activeChecker(){
		
		var canGoarray = this.canGoarray
		this.active = this.active;
			document.getElementById('canvas').addEventListener('click',function(evt,active = this.active){
				alert(active);
				if(active == true){
					for(var i = 0 ; i < canGoarray.length;i++){
						if( Math.round(evt.clientY/cellSize)-1 == canGoarray[i][0] && Math.round(evt.clientX/cellSize)-1 == canGoarray[i][1]  ){
								alert(1);
						}
					}
				}
				//this.setActive(false);
			},false);
			
		
	}
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2018, 12:42
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,150

Добавь в класс метод .handleEvent(event), после чего вещай обработчик так: .addEventListener('event', this) - все события будут попадать в handleEvent в котором будет нужный this и соответственно доступ к this.active.

Ещё можно, если логика требуется не сложная, использовать стрелочную функцию:
.addEventListener('event', event => {
  //this.active ...
});
Стрелочная функция захватывает this родителя.

Есть также множество дедовских вариантов привязки this, но в наше время оные уже не имеют особо практического смысла.)
__________________
29375, 35

Последний раз редактировалось Aetae, 27.08.2018 в 12:48.
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2018, 17:03
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,557

Сообщение от maxempolk
мне нужно определять нажатия пo canvas'у
Точнее по отдельным его фрагментам? Тогда вам понадобится какая-нибудь простенькая библиотека по работе с canvas.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Локальные переменные как массив lacinho Общие вопросы Javascript 7 02.09.2013 04:34
глобальные или локальные обьекты l-liava-l Оффтопик 27 10.02.2013 21:45
Рекурсия перезаписывает локальные переменные! Почему? salikoff Общие вопросы Javascript 5 31.03.2012 22:43
Как использовать 2 локальные переменные? 9xakep Общие вопросы Javascript 2 26.07.2011 16:53
Динамическая смена рисунка на html, используя локальные рисунки с компа пользователя evgen28 Общие вопросы Javascript 9 27.03.2009 12:14