Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / А обработчик события - это атрибут узла или нет? / 25 сообщений из 29, страница 1 из 2
28.02.2007, 17:03
    #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
28.02.2007, 17:25
    #34361443
@RuSHA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
Код: plaintext
row.onclick = function () { eval(onClick ) };
________________________
Спроси, может отвечу ;)
icq 111718060
...
Рейтинг: 0 / 0
28.02.2007, 17:31
    #34361465
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
Спасибо, сейчас попробую
...
Рейтинг: 0 / 0
01.03.2007, 06:23
    #34362219
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
Попробовал, перестало работать и в firefox тоже.
...
Рейтинг: 0 / 0
01.03.2007, 07:04
    #34362248
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
muk07Попробовал, перестало работать и в firefox тоже.
не надо "javascript:"
...
Рейтинг: 0 / 0
01.03.2007, 09:26
    #34362465
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
не работает и с ним и без него
...
Рейтинг: 0 / 0
01.03.2007, 11:34
    #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
01.03.2007, 14:40
    #34363786
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
1) Я человек дремучий. Поясните что это за аргумент evt?
2) обработчик onClick должен быть повешен индивидуально на каждую строку таблицы.
он имеет вид
MarkRow(имя таблицы, номер строки, имя некоторой функции);
все они, в пределах таблицы, отличаются друг от друга только номером строки. Неясно как в рамках вашего предложения протащить номер строки в ф-ю ААА
...
Рейтинг: 0 / 0
01.03.2007, 15:46
    #34364099
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
muk07Мне уже дали сегодня советы, граничащие с шаманством и они сработали.
muk07не работает и с ним и без него
займитесь шаманством, ... или отладкой на алертах
и всё само заработает
...
Рейтинг: 0 / 0
01.03.2007, 16:08
    #34364173
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
можно поподробнее что нужно

я понял так динамически создаётся обьект со своими атрибутами
и нужно добавить евент onclick
то что я передал то на созданный обьект с id вешается функция для onclick
все атрибуты для этого обьекта можно получить внутри функции через obj
...
Рейтинг: 0 / 0
01.03.2007, 16:30
    #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
01.03.2007, 16:35
    #34364274
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
у тебя IE7
не обратил внимание
для IE6 точно работает
...
Рейтинг: 0 / 0
01.03.2007, 16:39
    #34364298
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
У меня и в IE6 не работает
...
Рейтинг: 0 / 0
01.03.2007, 16:50
    #34364341
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
счас попробую переделать
...
Рейтинг: 0 / 0
01.03.2007, 17:43
    #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
01.03.2007, 19:42
    #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
01.03.2007, 21:56
    #34365080
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
мне тоже интересно что за параметр 0
нарисовал чисто по аналогии
но работает в IE Mozilla
...
Рейтинг: 0 / 0
02.03.2007, 07:06
    #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
02.03.2007, 15:26
    #34367162
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
в IE7 тоже работает ??
сам провериьт не могу
...
Рейтинг: 0 / 0
03.03.2007, 06:48
    #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
03.03.2007, 06:50
    #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
03.03.2007, 07:02
    #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
03.03.2007, 08:11
    #34368561
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
Виноват, дело не в eval, а в нижележащем ajax.
Разбираюсь.
Я слышал много высказываний, что IE - г.., но не думал что до такой степени.
...
Рейтинг: 0 / 0
03.03.2007, 14:42
    #34368848
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
нужно
evnt=(evnt) ? evnt : ((window.event) ? evnt : null); alert(0);
...
Рейтинг: 0 / 0
03.03.2007, 14:43
    #34368850
michael R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А обработчик события - это атрибут узла или нет?
не совсм так

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


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