Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Night_Wolf от 02 Августа 2007, 18:16:46

Название: Использовать Event для выделения ячейки
Отправлено: Night_Wolf от 02 Августа 2007, 18:16:46
Здравствуйте, запутался совсем... Нужно подсвечивать ячейку, при наведении на нее курсора мыши. Количество строк в таблице заранее не известно.









1
2
3
4
5


Подскажите, чего не так копаю.
Название: Использовать Event для выделения ячейки
Отправлено: hanslinger от 02 Августа 2007, 18:32:38
id — он на то и id, чтобы быть уникальным
надо делать id у таблицы, потом бегать по getElementsByTagName(\'tr\') и уже им присваивать события
Название: Использовать Event для выделения ячейки
Отправлено: Night_Wolf от 02 Августа 2007, 18:40:40
Если прописать getElementsByTagName(\'tr\'), то туда попадут строки с других таблиц.
Но вопрос еще в том, как инициализировать функцию, которая бы изменяла фон ячеек?
Название: Использовать Event для выделения ячейки
Отправлено: CGVictor от 02 Августа 2007, 21:23:58
Night_Wolf
Если переделывать этот вариант - то можно выбирать по ClassName.
Вот тут я решения приводил уже: http://forums.webscript.ru/showthread.php?s=&postid=150283#post150283
Название: Использовать Event для выделения ячейки
Отправлено: Night_Wolf от 03 Августа 2007, 12:01:34
CGVictor, спасибо большущее! Направил на пусть истинный:) Думаю дальше сам разберусь!
Название: Использовать Event для выделения ячейки
Отправлено: hanslinger от 03 Августа 2007, 15:27:14
Цитировать
Если прописать getElementsByTagName(\'tr\'), то туда попадут строки с других таблиц.

Ну, если делать document., тогда да.
А если сделать document.getElementById(\'element\').getElementsByTagName(\'tr\'), то будет все в шоколаде.
Название: Использовать Event для выделения ячейки
Отправлено: andymc от 04 Августа 2007, 10:08:02
Эта задача уже многими была решена...
function zebraTable(id, c1, c2) {
lastColor = \'#FFFFFF\';
function tblColor(e) {
var e = window.event ? window.event : e;
var el1 = window.event ? window.event.srcElement : e.target;
var el = el1.parentNode;
if (el.tagName == \'TD\') {
el = el.parentNode;
}
var c = el.cells;
if (e.type == \'mouseover\') {
lasrColor = el.bgColor;
el.bgColor = c1;
for (var i = 0; i < c.length; i++) {
c[i].bgColor = c1;
}
} else {
if (c2 != \'\' && c2 != null) {
var setColor = c2;
} else {
var setColor = lasrColor;
}
el.bgColor = setColor;
for (var i = 0; i < c.length; i++) {
c[i].bgColor = setColor;
}
}
}
if (c1 == \'\') {
return false
}
var t = document.getElementById(id);
for (var i = 0; i < t.rows.length; i++) {
lastColor = t.rows[i].bgcolor;
list(t.rows[i], \'mouseover\', tblColor)
list(t.rows[i], \'mouseout\', tblColor)
}
}
function list(o, e, a) {
if (o.addEventListener) o.addEventListener(e, a, false);
else if (o.attachEvent) o.attachEvent("on" + e, a); else return null;
}
Название: Использовать Event для выделения ячейки
Отправлено: new_coder от 22 Августа 2007, 10:55:42
а просто прописать CSS стиль к таблице?
Название: Использовать Event для выделения ячейки
Отправлено: andymc от 22 Августа 2007, 11:18:50
new_coder
IE понимает hover только для ссылок