powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Изменение текста событий скопированного элемента HTML
7 сообщений из 7, страница 1 из 1
Изменение текста событий скопированного элемента HTML
    #33044979
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Задача стоит следующим образом:

Таблица содержит ряды, заполненные клетками,
содержащими элементы управления (input, button)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<tr id="row1111">
	<td id="1111" class="TDPrm" width="20" align="center" valign="middle" onclick="selectrow(1111);">
		<!-- delete button -->
		<input class="button" type="button" name="delelem" value="x" style="width: 15px; height: 15px;" onclick="selectrow(1111); delthreadelement();">
	</td>
	<td id="1111" num="1111" class="TDPrm" width="20" onclick="selectrow(1111);"><%=Num +  1 %></td>
	<td id="1111" class="TDPrm" width="200" onclick="selectrow(1111);">
		<table cellSpacing="0" cellPadding="0">
			<tr>
				<td width="180"></td>
				<td width="20">
					<!-- select station button -->
					<input class="button" type="button" name="selectst" num="1111" kod="1111" stname="" value="..." style="width: 15px; height: 15px;" onclick="selectrow(1111); selectst(this);">			
					<input name="kod1111" id="kod1111" type="hidden" value="">
				</td>
			</tr>
		</table>
	</td>
	<td id="1111" class="TDPrm" width="50" onclick="selectrow(1111);">
		<input name="hp1111" type="text" class="text" initialvalue="" value="" style="width: 100%; height: 100%;" onchange="validate(this, 'hp');" onselect="selectrow(1111);">
	</td>
	<td id="1111" class="TDPrm" width="50" onclick="selectrow(1111);">
		<input name="mp1111" type="text" class="text" initialvalue="" value="" style="width: 100%; height: 100%;" onchange="validate(this, 'mp');" onselect="selectrow(1111);">
	</td>
	<td id="1111" class="TDPrm" width="50" onclick="selectrow(1111);">
		<input name="ho1111" type="text" class="text" initialvalue="" value="" style="width: 100%; height: 100%;" onchange="validate(this, 'ho');" onselect="selectrow(1111);">
	</td>
	<td id="1111" class="TDPrm" width="50" onclick="selectrow(1111);">
		<input name="mo1111" type="text" class="text" initialvalue="" value="" style="width: 100%; height: 100%;" onchange="validate(this, 'mo');" onselect="selectrow(1111);">
	</td>
	<td id="1111" class="TDPrm" width="120" onclick="selectrow(1111);">
		<input name="prp1111" type="checkbox" class="checkbox" value="1">
	</td>
</tr>

После заполнения ряд копируется:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
function neweditrow() {
	// add a new edition row
	var ertr = document.all("row1111");
	var newNode = ertr.cloneNode(true);
	//var newNode = document.createElement("td");
	var childtd;
	var newid = "" + (rowcount +  1 );
	var i;
	newNode.id = "row" + newid;
	for (i =  0 ; i <=  7 ; i++){
		childtd = newNode.children(i);
		childtd.id = newid;
		childtd.onclick = "selectrow(" + newid + ");";
	}
	ertr.insertBefore(newNode);
	rowcount = rowcount +  1 ;
	selectrow(newid);
	cleareditrow();
	//var tblData = document.all("tblData");
	//alert(tblData.outerHTML);
}

Проблема такова:
При изменении текста onclick скопированного ряда таблицы
(меняется значение идентификатора)
событие перестаёт отрабатывать.

Как заставить его выполняться?

Может, у кого есть ссылки на ресурсы,
описывающие подобную процедуру?
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045371
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл метод attachEvent (мне помогли).
Но он в качестве второго аргумента предполагает
указатель на функцию.
Сформулирую новый вопрос следующим образом:
Можно ли в JavaScript динамически дописывать новые функции?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045443
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже можно использовать метод insertAdjacentElement.
У кого-нибудь есть работающий пример?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045466
kdima71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Рекомендую обратить Ваше внимание на DOM (Document Object Model), используя такие методы как CreateElement, insertBefore, appendChild....

С уважением, kdima71.
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045489
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
function neweditrow() {
 // add a new edition row
 var ertr = document.all("row1111");
 var newNode = ertr.cloneNode(true);
 //var newNode = document.createElement("td");
 var childtd;
 var newid = "" + (rowcount +  1 );
 var i;
 var fn;
 var fname;
 var el;
 newNode.id = "row" + newid;
 for (i =  0 ; i <=  7 ; i++){
  childtd = newNode.children(i);
  childtd.id = newid;
  fn = "selectrow(" + newid + ");";
  fn = "function sr" + newid + "() {" + fn + "}";
  fname = "sr" + newid;
  fn = "<script language='javascript'>" + fn + "</script>";
  el = document.createElement(fn);
  document.body.insertAdjacentElement('beforeEnd', el);
  childtd.attachEvent("onclick", fname);
 }
 ertr.insertBefore(newNode);
 rowcount = rowcount +  1 ;
 selectrow(newid);
 cleareditrow();
}

В чём может крыться ошибка?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045497
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее: Как корректно получить указатель
на вновь созданную функцию в новом скрипте?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Изменение текста событий скопированного элемента HTML
    #33045568
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос снят.

Отказался от вписывания функции в событие "onclick".
Обрабатываю "onclick" родительской таблицы
и по event.scrElement нахожу что было выбрано.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Изменение текста событий скопированного элемента HTML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]