Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обращение к динамически созданным элементам. (https://javascript.ru/forum/dom-window/31942-obrashhenie-k-dinamicheski-sozdannym-ehlementam.html)

platedz 03.10.2012 01:46

Спасибо, сделал через targer, хотя на будущее надо бы добавить еще метод, который получит все элементы по тому же принципу, что и сейчас, но и в том числе даже если они еще не созданы на странице. Т.е. что-то навроде функции Live, т.ч. буду признателен каждому, кто добавить какой-нибудь дельной информации по данному вопросу.

platedz 03.10.2012 13:09

Возник еще один вопрос, как удалить созданный элемент правильно.

Пишу так.

.sob("mouseout",function(e)
     {
      	if(event.relatedTarget.id != "null" && event.relatedTarget.id != "undefined" &&    event.relatedTarget.id != "di" && event.relatedTarget.parentNode.id != "di" && document.getElementById("di")) {

	document.getElementById("di").parentNode.removeChild(document.getElementById("di"));
	
	}
		
	});


В общем и целом все работает, но отладчик выдает ошибки

Uncaught TypeError: Cannot read property 'id' of null

Как правильно определить когда нужно этот элемент удалить? Надеюсь, поможете.

bes 03.10.2012 13:18

ну он же вычисляет значения в условии, а id не всегда есть

platedz 03.10.2012 13:38

Так а как бы это правильно записать. Если например нет id. Или еще лучше, если мышь выходит за пределы #idd

bes 03.10.2012 14:01

<div style="background: gray">div</div>
<script>
document.body.children[0].onmouseover = function () {
	if (!document.getElementById('di')) {
		this.insertAdjacentHTML('afterBegin', '<button id="di">click</button>');
	} 
}
document.body.children[0].onmouseout = function (e) {
	e = e || event;
	var rt = e.relatedTarget || e.toElement;
	while(rt && rt != this) {
		rt = rt.parentNode;
	}
	if (rt == this ) {
		return;
	} else if (document.getElementById('di')) {
		this.removeChild(document.getElementById('di'));
	}
}
</script>

platedz 03.10.2012 14:16

Спасибо, попробую

sotik 04.10.2012 09:02

<js>
var val = "Смотреть бой";
</js>
<div id="block_id">
<form name="boy">
<input type="button" name="sost" value="" onclick="sostform(boy)" />
</form>
</div>
Можно ли как-нибудь переменную val вставить в value без использования innerHTML ?

lord2kim 04.10.2012 09:18

sotik,
window.onload = fucntion () { document.getElementsByName("sost")[0].value = val; }

sotik 04.10.2012 09:37

Спасибо.А я тем временем нашел еще одно решение:
//функция смены кнопки
function press(f) {
if(f.but.value == "Смотреть бой"){f.but.value = "Отменить просмотр";}
}

sotik 04.10.2012 09:54

с кнопками можно делать:
• изменять надпись на кнопке;
• указывать обработчик события, который будет выполняться при нажатии на кнопку;
• выдавать кнопке определенный обработчик в зависимости от внешних условий.
Интересует третий пункт.
Если на кнопку было повешано onClick="press(this.form)",
то как это можно изменить на onClick="Ring(this.form)" ?
желательно с примением моей функции (//функция смены кнопки).


Часовой пояс GMT +3, время: 20:09.