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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Не возвращается цвет строки после выполнения функции
 
 автор: Front   (16.12.2008 в 18:26)   письмо автору
 
 

Добрый вечер!
Помогите пожалуйста по следующему вопросу. Есть функция javascript:

<script>
function colorMe(el)    
{    
  var chkbox = el;    
       
  while(el.tagName != 'TR') { el = el.parentNode; }  
  var original_color = el.style.backgroundColor;    
  //alert(original_color);    
  if(chkbox.checked)  {  
      el.style.backgroundColor= (el.bgColor==='#79B4F8' ? original_color : '#79B4F8');   
     el.onmouseover=null;  
     el.onmouseout=null;  
   }  
  else   
  { 
      el.style.backgroundColor=original_color; 
      el.onmouseover=el.style.backgroundColor='#FDF4DF'; 
      el.onmouseout=el.style.backgroundColor='#FDF4DF';


   
        </script> 


И вывод из mysql записей в цикле:

while ($res_two = mssql_fetch_assoc($sql_two))
                                    {
                                                if($num % 2) $bgc="#FDF4DF"; 
    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';\">"; 
                                    ?>
                                        <td><input type="checkbox" name='menu[]' value='<?php echo $sql_two['id'];?>' id='<?php echo $sql_two['id'];?>' onclick="colorMe(this)"/></td>
                                        <?php
                                        
echo "<td>$res_two[name]</td>";
                                    echo 
"</tr>";
                                    }
                                    
$num++;

Проблема в то что функция работает, но после того как я сначала поставлю, а потом сниму checkbox, при наведении курсора на строку цвет ее не меняется т.е. значение цвета в событии onmouseover=\"this.style.backgroundColor='#dddddd'; после функции изменилось и не вернулось в исходное состояние? Подскажите как исправить недочет!
Заранее спасибо .

  Ответить  
 
 автор: Lelik   (16.12.2008 в 18:45)   письмо автору
 
   для: Front   (16.12.2008 в 18:26)
 

вместо назначения стилей джаваскриптом, лучше назначать классы

  Ответить  
 
 автор: sl1p   (16.12.2008 в 18:45)   письмо автору
 
   для: Front   (16.12.2008 в 18:26)
 

if($num % 2) $bgc="#FDF4DF";
else $bgc="#FDF4DF";

так и задумано?

  Ответить  
 
 автор: Front   (16.12.2008 в 19:51)   письмо автору
 
   для: sl1p   (16.12.2008 в 18:45)
 

Ведь чередование цветов в строках никогда не поздно добавить, пока это пробный скрипт!

  Ответить  
 
 автор: AlexSol   (16.12.2008 в 19:59)   письмо автору
 
   для: Front   (16.12.2008 в 18:26)
 

el.onmouseover= function(){this.style.backgroundColor='#FDF4DF';}

  Ответить  
 
 автор: Front   (17.12.2008 в 09:08)   письмо автору
 
   для: AlexSol   (16.12.2008 в 19:59)
 

Вы могли бы пояснить? Function() - это что!

  Ответить  
 
 автор: AlexSol   (17.12.2008 в 10:25)   письмо автору
 
   для: Front   (17.12.2008 в 09:08)
 

function(){} это определение функции

вы же вызываете по клику функцию onclick="colorMe(this)" , а onmouseover это такое же событие и по нему тоже стоит вызывать функцию

  Ответить  
 
 автор: Front   (17.12.2008 в 10:56)   письмо автору
 
   для: AlexSol   (17.12.2008 в 10:25)
 

Так а где ее вызывать, в inputе?

function backcolor(el)
{
    var chkbox = el;    
    while(el.tagName != 'TR') { el = el.parentNode; }
    el.style.backgroundColor='#FDF4DF';
}

                                        <td><input type="checkbox" name='menu[]' value='<?php echo $sql_two['id'];?>' id='<?php echo $sql_two['id'];?>' onclick="colorMe(this)"/ onmouseover="backcolor(this)"></td>

  Ответить  
 
 автор: Front   (17.12.2008 в 17:58)   письмо автору
 
   для: Front   (17.12.2008 в 10:56)
 

Никто не подскажет?

  Ответить  
Rambler's Top100
вверх

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