|
|
|
| Есть страница, которая отображает список элементов в таблице.
Элементы выводятся из БД.
Что у нас есть:
Когда элементы выводятся один за другим, происходит альтернация цвета каждой строки, при наводе курсора на определёную строку, её цвет меняется.
Чего не достаёт:
Если пользователь нажал поставил галочку в определённой строке, её цвет тоже меняется.
Посмотрите скриншот, чтобы было понятнее->
Вывод элементов из БД:
<?php
while ($list = mysql_fetch_array( $sql_total_records) ) {
// Alternate table rows colors
$bgc = ( $bgc==='tdLight' ? 'tdDark' : 'tdLight' );
?>
<tr class="<?php print($bgc);?>" onMouseOver="this.className='highlight'" onMouseOut="this.className='<?php print($bgc);?>'">
<td width="10%" align="center" ><input type="checkbox" name="deletelist[<?php echo $list['airplane_id']; ?>]" id="deletelist" value="<?php echo $list['airplane_id']; ?>" onclick="colorMe(this)"/></td>
<td width="40%" align="center">
<?php print($list['airplane_type_name']);?>
<input type="hidden" value="<?php print($list['airplane_id']);?>">
</td>
<td width="40%" align="center">
<?php print($list['airplane_name']);?>
</td>
</tr>
<?php } // end of while ?>
|
Javascript:
function colorMe(el)
{
while(el.tagName != 'TR') { el = el.parentElement; }
el.bgColor= (el.bgColor=='#ff0000' ? '#ffffff' : '#ff0000');
}
|
Функция colorMe() отказывается здесь работать.
Как быть?
Спасибо. | |
|
|
|
|
|
|
|
для: codexomega
(01.06.2006 в 19:28)
| | Возможно проблема в том, что
el.bgColor != el.style.backgroundColor | |
|
|
|
|
|
|
|
для: RMW
(01.06.2006 в 20:57)
| | Точно, спасибо.
Теперь надо сообразить как сделать так, чтобы когда галочку убрал, прежний цвет возвратился.. | |
|
|
|
|
|
|
|
для: codexomega
(01.06.2006 в 21:04)
| | Нередки блуждания в этих трёх соснах.
html: bgcolor
css: background-color
Js: backgroundColor
Целых три разных названия одного свойства! :))) | |
|
|
|
|
|
|
|
для: RMW
(01.06.2006 в 21:15)
| | Ещё 4-е: bgColor (JS), не равный style.backgroundColor. И если он всегда имеет hex-представление, то style.backgroundColor может быть пустым, hex, rgb или текстовым цветом. | |
|
|
|
|
|
|
|
для: 12345
(01.06.2006 в 21:59)
| | Ураа!! Получилось!
Вот рабочий код:
function colorMe(el)
{
var chkbox = el;
while(el.tagName != 'TR') { el = el.parentElement; }
var original_color = el.bgColor;
if(chkbox.checked)
el.style.backgroundColor= '#1E90FF';
else{
el.style.backgroundColor= original_color;
}
}
|
<tr class="<?php print($bgc);?>" onMouseOut="this.className='<?php print($bgc);?>'" onMouseOver="this.className='highlight'">
|
| |
|
|
|
|
|
|
|
для: codexomega
(01.06.2006 в 21:04)
| |
function colorMe(el)
{
var chkbox = el;
while(el.tagName != 'TR') { el = el.parentElement; }
var original_color = el.style.backgroundColor;
//alert(original_color);
if(chkbox.checked)
el.style.backgroundColor= (el.bgColor==='#1E90FF' ? original_color : '#1E90FF');
/*else
el.style.backgroundColor=original_color;*/
}
|
Вот я здесь экспериментирую с функцией, чтобы возвратить прежний цвет строке, после снятия галочи с чекбокса.
Нифига не получается, перехватить оригинальный цвет строки, при выводе элементов не удаётся, так как он теряeтся сразу после наведения мышки на строку.
Мне хочется сделать типа того, как это устроено в phpMyAdmin. | |
|
|
|