Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Изменение текста событий скопированного элемента HTML / 7 сообщений из 7, страница 1 из 1
02.05.2005, 17:42
    #33044979
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста событий скопированного элемента HTML
Привет!

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

Таблица содержит ряды, заполненные клетками,
содержащими элементы управления (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
03.05.2005, 09:20
    #33045371
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста событий скопированного элемента HTML
Нашёл метод attachEvent (мне помогли).
Но он в качестве второго аргумента предполагает
указатель на функцию.
Сформулирую новый вопрос следующим образом:
Можно ли в JavaScript динамически дописывать новые функции?

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

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

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

С уважением, kdima71.
...
Рейтинг: 0 / 0
03.05.2005, 10:11
    #33045489
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста событий скопированного элемента HTML
Код: 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
03.05.2005, 10:16
    #33045497
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение текста событий скопированного элемента HTML
Точнее: Как корректно получить указатель
на вновь созданную функцию в новом скрипте?

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

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

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


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