Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 14:02   #1
yamoodo
 
Регистрация: 27.02.2012
Сообщений: 4
По умолчанию Эфект по событию в Javascript

Уважаемые специалисты!
Вы могли бы мне подсказать, ка решить такую задачу:
1. есть таблица с несколькими ячейками, в каждой ячейке указан фон картинкой и текст, при наведении на определенную ячейку фон в ней меняется и оформление текста, если убрать курсор - восстанавливается прежнее оформление.
2. при нажатии необходимо чтобы то оформление которое было при наведении на ячейку "фиксировалось", и если до этого было нажато на другую ячейку, то там тоже чтобы сбрасывалось оформление на предыдущее.

Первый пункт я реализовал, см. код, а вот как быть со вторым не знаю

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<script type="text/javascript">
function change_size_1(id) {
	document.getElementById(id).style.color = '#fff';
	document.getElementById(id).style.backgroundImage = 'url(images/size_1b.png)';
};
function source_size_1(id) {
	document.getElementById(id).style.color = '#000';
	document.getElementById(id).style.backgroundImage = 'url(images/size_1a.png)';
};
</script>
</head>
<body onload="MM_preloadImages('images/size_1b.png')">
<table width="40" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_1" onmouseover="change_size_1('size_1')" onmouseout="source_size_1('size_1')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_2" onmouseover="change_size_1('size_2')" onmouseout="source_size_1('size_2')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_3" onmouseover="change_size_1('size_3')" onmouseout="source_size_1('size_3')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
</tr>
</table>
</body>
</html>
Заранее благодарен.
yamoodo вне форума Ответить с цитированием
Старый 27.02.2012, 15:45   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Что-то вроде этого (красный обратно только верни на белый)
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<script type="text/javascript">

function change_size_1(id) {
//  document.getElementById(id).style.color = '#fff';
//  document.getElementById(id).style.backgroundImage = 'url(images/size_1b.png)';
};
function source_size_1(id) {
//  document.getElementById(id).style.color = '#000';
//  document.getElementById(id).style.backgroundImage = 'url(images/size_1a.png)';
};

</script>
<style>
  td.selected, td:hover {
    color:#f00;
    background:url(images/size_1a.png);
  }
</style>
</head>
<body onload="MM_preloadImages('images/size_1b.png')">
<table width="40" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_1" onmouseover="change_size_1('size_1')" onmouseout="source_size_1('size_1')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_2" onmouseover="change_size_1('size_2')" onmouseout="source_size_1('size_2')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
<td height="40" align="center" valign="middle" background="images/size_1a.png" id="size_3" onmouseover="change_size_1('size_3')" onmouseout="source_size_1('size_3')" style="cursor:pointer" title="Размер - 35,5 (система размеров RUS)" class="size_1">35,5</td>
</tr>
</table>
</body>
</html>
<script type="text/javascript">
  var td=document.getElementsByTagName('td');
  for (var i=td.length;i--;) {
    td[i].onclick=function(){
      this.className=this.className=='selected'?'':'selected';
    } 
  }
</script>
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 27.02.2012, 15:58   #3
yamoodo
 
Регистрация: 27.02.2012
Сообщений: 4
По умолчанию

Спасибо!

Идею понял, вот только осталось придумать как сбросить с эфект с тех ячеек которые уже были нажаты
yamoodo вне форума Ответить с цитированием
Старый 28.02.2012, 13:59   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от yamoodo Посмотреть сообщение
Спасибо!

Идею понял, вот только осталось придумать как сбросить с эфект с тех ячеек которые уже были нажаты
мой код и назначает эффект, и сбрасывает
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 28.02.2012, 14:26   #5
yamoodo
 
Регистрация: 27.02.2012
Сообщений: 4
По умолчанию

Цитата:
мой код и назначает эффект, и сбрасывает
Ну да, при повторном нажатии на эту же ячейку.
yamoodo вне форума Ответить с цитированием
Старый 28.02.2012, 16:23   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

А, понял...
Код:
for (var i=td.length;i--;) {
    td[i].onclick=function(){
      for (var j=td.length;i--;)
        td[j].className=0;
      this.className='selected';
    } 
  }
тогда так.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 28.02.2012, 22:05   #7
yamoodo
 
Регистрация: 27.02.2012
Сообщений: 4
По умолчанию

Спасибо!
yamoodo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие формы по событию onMouseMove SkyLite Помощь студентам 0 16.12.2011 16:54
Запуск макроса по событию tim13 Microsoft Office Excel 5 17.08.2009 13:33
Эфект затемнения раб стола + Формы.(иное решение) Lime Мультимедиа в Delphi 5 22.06.2009 21:08
Вызов функции по событию phobos Общие вопросы .NET 8 26.05.2009 01:06