|
|
|
| Добрый день всем!
Уже 2 часа бьюсь над скриптом. Прошу помощи так как в javascript не силен!
//вывод в браузер
while ($sql_res = mysql_fetch_assoc($sql))
{
if($num % 2) $bgc="#FFFFFF";
else $bgc="#FDF4DF";
echo "<tr bgcolor=\"${bgc}\" onmouseover=\"this.style.backgroundColor='#dddddd';this.style.color='#000000';\" onmouseout=\"this.style.backgroundColor='${bgc}';this.style.color='#000000';\">";
//echo "<tr bgcolor=\"${bgc}\" onmouseover=\"this.style.backgroundColor='#dddddd';this.style.color='#000000';\" onmouseout=\"this.style.backgroundColor='${bgc}';this.style.color='#000000';\">";
?>
<td><input type="checkbox" name="id" value='<?php echo "c_".$sql_res['comp'];?>' id='<?php echo "c_".$sql_res['comp'];?>' onclick="colorMe(this)"/></td>
<?php
echo "<td width='60' style='border-width:2px 1px 1px 0px ;border-color:#AA112D;border-style:solid;text-align:center;'>$sql_res['comp']</td>";
}
?>
|
//javascript
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;*/
}
</script>
|
Когда ставлю флажок, цвет ячейки меняется, но после срабатывания события onmouseout цвет меняется на отратное значение, а checkbox остается.
Подскажите пож-та решение проблемы! | |
|
|
|
|
|
|
|
для: Front
(15.02.2008 в 14:45)
| | Я так понимаю у вас при наведении и уходе миши с елемента TR меняется его цвет фона. Так же при установке флажка должен менятся цвет фона этого самого TR. И оставатся таким даже при уходе с него мыши. Но обработчик события все равно то остается он и реагирует на уход мыши меняя тем самым цвет. Если вы хотите чтобы при установке цвета с помощью флажка его цвет оставался не меняясь при срабатывании события onmouseout и onmouseover - эти события надо отменить. Сделать это можно так
function colorMe(el)
{
var chkbox = el;
while(el.tagName != 'TR') { el = el.parentNode; } // Рекомендую использевать parentNode вместо parentElement т. к. последний поддерживается только в IE.
var original_color = el.style.backgroundColor;
//alert(original_color);
if(chkbox.checked) {
el.style.backgroundColor= (el.bgColor==='#1E90FF' ? original_color : '#1E90FF');
el.onmouseover=null;
el.onmouseout=null;
}
/*else
el.style.backgroundColor=original_color;*/
}
|
| |
|
|
|
|
|
|
|
для: Dimon_K
(15.02.2008 в 15:18)
| | РАботает! Но возникла другая проблема, а как теперь вернуть изначальный цвет ячейки после снятия checkbox! | |
|
|
|
|
|
|
|
для: Front
(15.02.2008 в 15:24)
| |
function colorMe(el)
{
var chkbox = el;
while(el.tagName != 'TR') { el = el.parentNode; } // Рекомендую использевать parentNode вместо parentElement т. к. последний поддерживается только в IE.
var original_color = el.style.backgroundColor;
//alert(original_color);
if(chkbox.checked) {
el.style.backgroundColor= (el.bgColor==='#1E90FF' ? original_color : '#1E90FF');
el.onmouseover=null;
el.onmouseout=null;
}
else {
el.style.backgroundColor=original_color;
el.onmouseover=this.style.backgroundColor=...;
el.onmouseout=this.style.backgroundColor=...
}
}
|
| |
|
|
|
|
|
|
|
для: Dimon_K
(15.02.2008 в 15:59)
| | Спасибо большое за помощь! | |
|
|
|