Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Подсветка строки <tr> при onClick на checkbox

Сообщения:  [1-5] 

 
 автор: Front   (15.02.2008 в 18:06)   письмо автору
 
   для: Dimon_K   (15.02.2008 в 15:59)
 

Спасибо большое за помощь!

   
 
 автор: Dimon_K   (15.02.2008 в 15:59)   письмо автору
 
   для: 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=...

}

   
 
 автор: Front   (15.02.2008 в 15:24)   письмо автору
 
   для: Dimon_K   (15.02.2008 в 15:18)
 

РАботает! Но возникла другая проблема, а как теперь вернуть изначальный цвет ячейки после снятия checkbox!

   
 
 автор: Dimon_K   (15.02.2008 в 15:18)   письмо автору
 
   для: 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;*/  
}

   
 
 автор: Front   (15.02.2008 в 14:45)   письмо автору
 
 

Добрый день всем!
Уже 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 остается.
Подскажите пож-та решение проблемы!

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования