Javascript.RU

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

Onclick для созданных div-ов
Здравствуйте, я недавно начал осваивать css под браузер, возника следующая задача : Создать матрицу, каждая ячейка загорается случайным цветом при нажатии по ней клавишей, гаснет при повторном клике.
Никак не могу понять- как каждой будущей ячейке присвоить событие onclick, которое будет изменять цвет той ячейки, по которой тыкнуть.
Понимаю, что вопрос скорее всего дурацкий, но помогите решить эту проблему , пожалуйста.

код :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="text/javascript">

function game()
{
	var text = document.getElementById("vvod"); //Кол-во элементов 
	val = text.value;

	var pole = document.createElement("div");
		pole.id="pole";
		document.body.appendChild(pole);
		mas = [];

for (var i = 0; i <= val; i++)//создание поля из элементов(div-ов)
		{
			var div = document.createElement("div");
			div.className="man";
			div.id="matrix";
			mas[i]=div;
			document.getElementById('pole').appendChild(mas[i]);	
		}		

	document.getElementById("but2").disabled=false;
	document.getElementById("but").disabled=true;
	
	for ( var i = 0; i <= mas.length; i++) //проблемная зона
	{
		mas[i].onclick=function()
			{
				mas[i].style.background=getRandomColor();//getRandomColor()не указана в этом коде, т.к. не влияет ни на что, кроме цвета.
			}
	}
}	

function dte()
{
	document.getElementById("but").disabled=false;
	document.getElementById("but2").disabled=true;
	for (var i = 0; i <= mas.length; i++) 
		{
			mas[i].remove();
		}	
}

</script>

</head>

<body>
<h3>Введите количество ячеек : </h3>

<input type="text" maxlength="4" size="2px" value="98" id="vvod"></input>

<button id="but" onclick="game()">"подтвердить"</button>
<button id="but2" onclick="dte()" disabled> удалить матрицу</button>
</body>
</html>

Последний раз редактировалось BadBonus, 03.05.2016 в 00:01.
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2016, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

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

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


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 03.05.2016, 01:26
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

Зачем вешать обработчики на все элементы?
Вешаем на элемент родитель, задаем каждому новосозданному диву пользовательский атрибут вида data-*
pole.onclick = function(event) {
    if (!event.target.hasAttribute('data-*')) return; // проверяем туда ли попал клик

   var elem = event.target;

    elem.style.background=getRandomColor()
  };


Вуаля, обработчик один, но обрабатывает все дивы.
Ответить с цитированием
  #4 (permalink)  
Старый 03.05.2016, 01:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

BadBonus,
Сообщение от BadBonus
for ( var i = 0; i <= mas.length; i++) //проблемная зона
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сворачивать div при onclick на span djonA Общие вопросы Javascript 5 27.06.2015 18:19
плагин для работы с div defender057 jQuery 0 05.07.2013 01:38
Не могу создать вложенный DIV для отступа-не учитывается padding/margin род. элемента xintrea (X)HTML/CSS 8 24.09.2012 15:58
Как написать onclick для всех кнопок в таблице кол-во которых меняется olberd Events/DOM/Window 5 15.08.2012 21:14
Не работает AppendChild для div, причём только в IE _Kpot_ Internet Explorer 5 12.02.2009 10:55