Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2008, 21:42
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Одно из трех
Проблема такая: вот скрипт
<html>
       <head>
	<style type="text/css">
	.texts {
		margin:0px;
		padding:0px;
	}
	p {
		background-color:lightsteelblue;
		padding:2px;
		width:326px;
		clear:both
	}
	.DIVstandart {
		float:left;
		margin:0px;
		padding:0px 7px 0px 7px;
		cursor:pointer;
		background-color:white;
	}
	</style>
	<script>
	function checkOn(obj) {
		if(obj.style.backgroundColor == "") {
			obj.style.backgroundColor = "lightsteelblue";
		} else if(obj.style.backgroundColor == "lightsteelblue") {
			obj.style.backgroundColor = "";
		}
	}
	</script>
       </head>
       <body>
	<div class="DIVstandart" id="folder1" onclick="checkOn(this)">Город</div>
	<div class="DIVstandart" id="folder2" onclick="checkOn(this)">Улица</div>
	<div class="DIVstandart" id="folder3" onclick="checkOn(this)">Номер</div>
	<p>
	<input type="text" size="50" class="texts">
	</p>
       </body>
</html>

Подскажите как сделать так чтоб при нажатии на каком-нибудь элементе DIV выделялся всегда один элемент синим а остальные оставались не выделенными. Т.е если нажал на "Город", то "Улица и Номер" оставались не выделенными, а если нажал на "Улицу", то "Город и Номер" остались невыделенными.

Помогите! Плиз, очень надо!
Жду ответа.

Заранее благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2008, 22:09
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

function checkOn(obj)
{
if( obj.style.backgroundColor=="" && arguments.callee.checked==0)
	{
	arguments.callee.checked=1;
	obj.style.backgroundColor = "lightsteelblue";
	}
else if(obj.style.backgroundColor == "lightsteelblue")
	{
	arguments.callee.checked=0;
	obj.style.backgroundColor = "";
	}
}
checkOn.checked=0;//вводим как свойство функции, флаг, символизирующий выделенность какого-нибудь объекта
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2008, 22:28
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Gvozd,
Спасибо! Но малость не так. Когда я выделяю какой-нибудь див, остальные невозможно выделить т.е. выделенный див требует чтоб на него еше раз нажали. А суть в том что бы можно было переключать дивы независимо
Например:
я нажал на Город он выделился, затем я нажал на Адрес он выделился, а Город сразу отключился. Вот такой принцип.
Ты бы мог мне помочь в этом?
Заранее благодарен!
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2008, 22:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

После нажатия на выделенный элемент, выделение снимается
function checkOn(obj)
{
if( obj.style.backgroundColor=="" && arguments.callee.checked_node==undefined)
	{
	arguments.callee.checked_node=obj;
	obj.style.backgroundColor = "lightsteelblue";
	}
else if( obj.style.backgroundColor=="" && arguments.callee.checked_node!=undefined)
	{
	arguments.callee.checked_node.style.backgroundColor="";
	arguments.callee.checked_node=obj;
	obj.style.backgroundColor = "lightsteelblue";
	}
else if( obj.style.backgroundColor == "lightsteelblue")
	{
	arguments.callee.checked_node=undefined;
	obj.style.backgroundColor = "";
	}
}

После нажатия на выделенный элемент, выделение не снимается
function checkOn(obj)
{
if( obj.style.backgroundColor=="" && arguments.callee.checked_node==undefined)
	{
	arguments.callee.checked_node=obj;
	obj.style.backgroundColor = "lightsteelblue";
	}
else if( obj.style.backgroundColor=="" && arguments.callee.checked_node!=undefined)
	{
	arguments.callee.checked_node.style.backgroundColor="";
	arguments.callee.checked_node=obj;
	obj.style.backgroundColor = "lightsteelblue";
	}
}

ЗЫ надеюсь, теперь я ответил на ваш вопрос.
ЗЫЫ формулируйте более конкретно. ваша вторая формулировка, как и первая, не является полной
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2008, 00:24
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Да вот оно спасибо огромное!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск