powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / А обработчик события - это атрибут узла или нет?
25 сообщений из 29, страница 1 из 2
А обработчик события - это атрибут узла или нет?
    #34361366
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я динамически назначаю обработчик onClick для строки таблицы
Код: plaintext
1.
2.
3.
onClick="javascript:MarkRow(\""+this.Tab.name+"\","+i+",\""+this.onScroll+"\");"; 
// row - строка таблицы
row.setAttribute("onClick",onClick, 0 );
Это работает в firefox и не работает в IE7
Мне уже дали сегодня советы, граничащие с шаманством и они сработали.
Может ещё дадут?
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34361443
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
row.onclick = function () { eval(onClick ) };
________________________
Спроси, может отвечу ;)
icq 111718060
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34361465
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, сейчас попробую
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34362219
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал, перестало работать и в firefox тоже.
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34362248
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07Попробовал, перестало работать и в firefox тоже.
не надо "javascript:"
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34362465
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не работает и с ним и без него
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34362951
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так id-обьект к которую добавляется event

function AAA(evt)
{

evt=(evt) ? evt : ((window.event) ? event : null);
if (evt)
{
var obj=(evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null) ;
if(obj)
{
твой код
}
}


document.getElementById(id).onclick=AAA
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34363786
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Я человек дремучий. Поясните что это за аргумент evt?
2) обработчик onClick должен быть повешен индивидуально на каждую строку таблицы.
он имеет вид
MarkRow(имя таблицы, номер строки, имя некоторой функции);
все они, в пределах таблицы, отличаются друг от друга только номером строки. Неясно как в рамках вашего предложения протащить номер строки в ф-ю ААА
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364099
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07Мне уже дали сегодня советы, граничащие с шаманством и они сработали.
muk07не работает и с ним и без него
займитесь шаманством, ... или отладкой на алертах
и всё само заработает
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364173
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно поподробнее что нужно

я понял так динамически создаётся обьект со своими атрибутами
и нужно добавить евент onclick
то что я передал то на созданный обьект с id вешается функция для onclick
все атрибуты для этого обьекта можно получить внутри функции через obj
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364252
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Linuxerзаймитесь шаманством, ... или отладкой на алертах
и всё само заработает
если бы у меня было время, я бы посмеялся всесте с Вами.
alert сообщает, что он onclick тот что нужно. Но щелчок мышью его не fire.
michael R можно поподробнее что нужно
Вот более подробный фрагмент текста
Код: 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.
		// строки таблицы помещаются в tbody
		tbd = document.createElement("tbody");
		this.Tab.appendChild(tbd);
		tbd.setAttribute("id","tbody"+TabName);
		for(i =  0 ; i < this.xmlRows.length; i++) {
			e=this.xmlRows[i];
			row=tbd.insertRow(i); 	
			// по умолчанию цвет строк - белый
			row.setAttribute("bgcolor","#ffffff", 0 );
			// обработчик onClick=MarkRow(имя таблицы,номер строки,ф-я что ещё сделать);
			// красит строку в выделенный цвет
			onClick="MarkRow('"+this.Tab.name+"',"+i+",'"+this.onScroll+"');"; 
			row.setAttribute("onclick",onClick, 0 );
			alert(row.onclick); // так LINUXER велел
			// помещаем значения полей в строку
			for(j= 0 ;j<Cols.length;j++){ 
				FieldName=this.Cols[j][COLFIELD];
				Cell=row.insertCell(j);
				Cell.align=this.Cols[j][COLALIGN];
				atr=e.getAttribute(FieldName);
				type=this.Cols[j][COLTYPE];
				Cell.innerHTML=ConvertFrom(atr,type);
				Cell.setAttribute("id",FieldName);
			}
		}

В firefox событие onclick отрабатывается
В IE7 - никакой реакции
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364274
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя IE7
не обратил внимание
для IE6 точно работает
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364298
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня и в IE6 не работает
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364341
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
счас попробую переделать
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364595
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я немного переделал
идея следующая
для каждого обьекта к которому приклеивается события
добавляются атрибуты
и эти атрибуты вытаскиваются в функции на событие

сделай HTML файл


<script language="JavaScript">
function AAA(evt )
{
evt=(evt) ? evt : ((window.event) ? event : null);
if (evt)
{
var obj=(evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null) ;
if(obj)
{
alert(this.getAttribute("Tab") + " " + this.getAttribute("num") + " " + this.getAttribute("scroll"))
}
}
}


function BBB()
{
var tbd = document.createElement("tbody");
var tt=document.getElementById("T1")
tbd.setAttribute("id","tbody1");
for(i = 0; i < 3; i++)
{
var row=document.createElement("TR")
row.setAttribute("bgcolor","#FF0000",0);
row.setAttribute("Tab","A" + i,0);
row.setAttribute("num", "B" + i ,0);
row.setAttribute("scroll","C" + i,0);
row.onclick= AAA

for(j=0;j<3;j++)
{
var td=document.createElement("TD")
td.innerHTML="a"
row.appendChild(td)
}
tbd.appendChild(row)
}
tt.appendChild(tbd)

}
</script>

<html>
<body onload="BBB()" />
<TABLE border="2" id="T1"/>
</html>
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34364908
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07
Код: plaintext
1.
2.
3.
4.
5.
			// обработчик onClick=MarkRow(имя таблицы,номер строки,ф-я что ещё сделать);
			// красит строку в выделенный цвет
			onClick="MarkRow('"+this.Tab.name+"',"+i+",'"+this.onScroll+"');"; 
			row.setAttribute("onclick",onClick, 0 );
			alert(row.onclick); // так LINUXER велел

Если нужно просто перекрасить, то "динамический номер" передаётся только чтобы идентифицировать ячейку. Вместо этого можно просто передать её(dom object cell) параметром.

алертится кстати должна не строчка, а function(){...};
заметил,что в ие не работает
Код: plaintext
row.setAttribute("onclick",onClick, 0 );
;
в ие, но не в опере работает
Код: plaintext
row.setAttribute("onclick",function(){eval(onClick);}, 0 );
.
более ИМХО понятный вариант @RuSHA работает везде(по крайней мере строка интерпретируется)

кстати что значит последний параметр 0?
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34365080
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне тоже интересно что за параметр 0
нарисовал чисто по аналогии
но работает в IE Mozilla
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34365388
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Michael_R, Linuxer.
текст michael_R я воспроизвёл - он работает. Сегодня попытаюсь приспособить к своим нуждам.
Для меня неожиданно, что контекстом (this) обоаботчика события является строка.
У меня всё время получалось window. Чего-то недопонимаю.

По поводу параметра 0:
1st Javaeditor helpsetAttribute Method
Sets the value of the specified attribute.

Syntax

object.setAttribute( sName , vValue [ , iFlags ] )
Parameters

sName Required. String that specifies the name of the attribute.
vValue Required. Variant that specifies the string, number, or Boolean to assign to the attribute.
iFlags Optional. Integer that specifies one the following flags: 0 When the attribute is set, it overwrites any attributes with the same name, regardless of their case.
1 Default. The case of the attribute that you set is respected when it is set on the object.
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34367162
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в IE7 тоже работает ??
сам провериьт не могу
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368546
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>michael_R
Ваш пример работает под ff и ie7.
После переноса предложенной методики в мою задачу всё работвет под ff и попрежнему не работает в ie7.
Не передаётся evnt в обработчик:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function trOnClick(evnt ){
var j;

evnt=(evnt) ? evnt : ((window.evnt) ? evnt : null); 
if (evnt){alert( 1 );
	var obj=(evnt.target) ? evnt.target : ((evnt.srcElement) ? evnt.srcElement : null) ;
	if(obj){..................
приходит alert(0); и не приходит alert(1);
сейчас буду разбираться.
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368547
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исправление:
Код: plaintext
1.
2.
3.
4.
5.
6.
function trOnClick(evnt ){
var j;

evnt=(evnt) ? evnt : ((window.evnt) ? evnt : null); alert( 0 );
if (evnt){alert( 1 );
	var obj=(evnt.target) ? evnt.target : ((evnt.srcElement) ? evnt.srcElement : null) ;
	if(obj){...............
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368551
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрал if-ы:
Код: 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.
function trOnClick(evnt ){
/*var j;

evnt=(evnt) ? evnt : ((window.evnt) ? evnt : null); alert(0);
if (evnt){alert(1);
	var obj=(evnt.target) ? evnt.target : ((evnt.srcElement) ? evnt.srcElement : null) ;
	if(obj){ */

		var tbd=this.parentNode;
		var tab=tbd.parentNode;
		num=this.getAttribute("rowNum");
		var rows=tbd.getElementsByTagName("tr");
		var nRows=rows.length; 
		if(nRows== 0 ){
			tab.setAttribute("curRow","-1");
			return;
		}
		tab.setAttribute("curRow",num);
		for(j= 0 ;j<nRows;j++){
			rows[j].setAttribute("bgcolor","#ffffff", 0 );
		}
		rows[num].setAttribute("bgcolor","#00ffff", 0 ); 
		var onScroll=tab.getAttribute("onScroll");
		if(onScroll) eval(onScroll+"()");
/*	}
}*/
}
теперь не срабатывает
Код: plaintext
		if(onScroll) eval(onScroll+"()");
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368561
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виноват, дело не в eval, а в нижележащем ajax.
Разбираюсь.
Я слышал много высказываний, что IE - г.., но не думал что до такой степени.
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368848
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно
evnt=(evnt) ? evnt : ((window.event) ? evnt : null); alert(0);
...
Рейтинг: 0 / 0
А обработчик события - это атрибут узла или нет?
    #34368850
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсм так

evt=(evt) ? evt : ((window.event) ? event : null);
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / А обработчик события - это атрибут узла или нет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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