Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.05.2011, 08:24
Новичок на форуме
Отправить личное сообщение для Djeman Посмотреть профиль Найти все сообщения от Djeman
 
Регистрация: 07.03.2011
Сообщений: 9

Менять цвет фона по клику по ссылке
Нужно чтоб по первому клику по ссылке фон менялся на красный, а по второму - на белый и так далее. Вот код:
<body>

<a class="white" href="#">click</a>

<script type="text/javascript">
$(document).ready(function(){
	
	
	$('a.white').click(function(){
		$('body').css('background', 'red');
		$(this).removeClass();
		$(this).addClass('red');
	})

	$('a.red').click(function(){
		$('body').css('background', '#fff');
		$(this).removeClass();
		$(this).addClass('white');
	})
	

});
</script>
</body>

На первый клик фон меняется на красный, а второй клик уже не отрабатывает и фон остаётся красным. В чём может быть причина?
Ответить с цитированием
  #2 (permalink)  
Старый 14.05.2011, 08:32
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Когда вы вешаете событие для красного, такого элемента еще не существует, поэтому и не работает.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 14.05.2011, 08:47
Новичок на форуме
Отправить личное сообщение для Djeman Посмотреть профиль Найти все сообщения от Djeman
 
Регистрация: 07.03.2011
Сообщений: 9

Спасибо за ответ. Ведь знал же про live)
Теперь всё работает:
$('a.white').live('click', function(){
		$('body').css('background', 'red');
		$(this).removeClass();
		$(this).addClass('red');
	})

	$('a.red').live('click', function(){
		$('body').css('background', '#fff');
		$(this).removeClass();
		$(this).addClass('white');
	})
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2011, 11:22
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Не понимаю, для чего менять класс ссылке, а body инлайном цвет фона, если можно просто поменять класс body?
<!DOCTYPE html>
<html>
	<head>
		<style type="text/css">
			body {background: white}
			body.alternate-color {background: red}
			a.toggle-color {color: red}
			body.alternate-color a.toggle-color {color: white}
		</style>
		<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
		<script type="text/javascript">
			$(".toggle-color").live("click", function(){
				$(document.body).toggleClass("alternate-color");
				return false;
			})
		</script>
	</head>
	<body>
		<div><a href="javascript://" class="toggle-color">Изменить цвет фона!</a></div>
		<p>Lorem ipsum dolor sit amet</p>
		<p>ETAOIN SHRDLU ETAOIN SHRDLU ETAOIN SHRDLU</p>
	</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайно (из заданого) менять текст и его цвет по событию Mousemove hankmoody Events/DOM/Window 7 12.11.2010 13:23
Измена фона по клику mdiimas jQuery 2 26.08.2010 09:25
изменить цвет фона и запомнить его delias Элементы интерфейса 4 19.03.2010 16:34