Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2011, 14:18
Аспирант
Отправить личное сообщение для Денис2201 Посмотреть профиль Найти все сообщения от Денис2201
 
Регистрация: 04.08.2011
Сообщений: 38

смена класса
Имеется следующий скрипт:
var old_id;
				function kodimg(id) {
				if (old_id)
				document.getElementById(old_id).className = 'megaanchor';
				document.getElementById(id).className = 'megaanchor1';
				old_id = (id);
	
				}

<div class="megaanchor" id="megaanchor{@id}" onclick="kodimg(id);">

При клике меняет класс. Работает нормально,но не могу сделать условие что бы при еще одном клике на данный пункт класс менялся обратно.

Последний раз редактировалось Денис2201, 04.08.2011 в 14:22. Причина: исправление
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2011, 14:31
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

<script>
function toggleClass(el, class1, class2) {
    el.className = (el.className == class1) ? class2 : class1;
}</script>
<style>
span {padding: 2px 10px;}
.odd {background-color: #cd853f;}
.even {background-color: #8fbc8f;}
</style>
<span class="odd" onclick="toggleClass(this, 'odd', 'even')">Span</span>

Последний раз редактировалось ваый, 04.08.2011 в 14:36.
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2011, 15:36
Аспирант
Отправить личное сообщение для Денис2201 Посмотреть профиль Найти все сообщения от Денис2201
 
Регистрация: 04.08.2011
Сообщений: 38

Сообщение от ваый Посмотреть сообщение
<script>
function toggleClass(el, class1, class2) {
    el.className = (el.className == class1) ? class2 : class1;
}</script>
<style>
span {padding: 2px 10px;}
.odd {background-color: #cd853f;}
.even {background-color: #8fbc8f;}
</style>
<span class="odd" onclick="toggleClass(this, 'odd', 'even')">Span</span>
Вариант интересный, но мне еще нужно учесть id. Если щелкаю по другому пункту, то у предыдущего класс должен обнуляться

http://1.petrocol.z8.ru посмотрите меню
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2011, 15:52
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Так почему бы не посмотреть, как там сделано?
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2011, 17:20
Аспирант
Отправить личное сообщение для Денис2201 Посмотреть профиль Найти все сообщения от Денис2201
 
Регистрация: 04.08.2011
Сообщений: 38

Геморой в том, что там сделано так же. т.е. если кликать поочередно по всем 3-ем пунктам, то классы поменяются у всех. А нужно, что бы кликая на другой, то у предыдущего класс становился прежним. Так что бы активным бал только один.
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2011, 17:23
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Ну запоминай предыдущий элемент, и меняй ему класс
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2011, 21:43
Аспирант
Отправить личное сообщение для Денис2201 Посмотреть профиль Найти все сообщения от Денис2201
 
Регистрация: 04.08.2011
Сообщений: 38

Извините меня, но не могли бы вы показать на примере??
Просто я только начал изучать этот язык.
Ответить с цитированием
  #8 (permalink)  
Старый 05.08.2011, 11:52
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<style>
div {
   width: 50px;height: 20px;float: left;cursor: pointer;margin-left: 20px;
}

.simple {
   background-color: orange;
}

.active {
   background-color: white;
}
</style>
<div class="simple" onclick="check(this);">Div 1</div>
<div class="simple" onclick="check(this);">Div 2</div>
<div class="simple" onclick="check(this);">Div 3</div>
<script>
var current;
function check(obj) {
   obj.className = 'active'; //Текущему объекту присваиваем класс "active"
   if (current)
      current.className = 'simple'; //Прежнему активному ставим обратно класс "simple"
   current = obj; //Сохраняем текущий кликнутый объект
}
</script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #9 (permalink)  
Старый 05.08.2011, 12:30
Аспирант
Отправить личное сообщение для Денис2201 Посмотреть профиль Найти все сообщения от Денис2201
 
Регистрация: 04.08.2011
Сообщений: 38

Класс. Работает как нужно. Спасибо.
Но у меня еще один маленький вопрос по скрипту: если кликнуть по активному элементу, а потом еще раз, то пока не кликнешь по другим, то ничего не произойдет.
Ответить с цитированием
  #10 (permalink)  
Старый 05.08.2011, 12:32
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Денис2201,
Правильно, это же был всего лишь пример как можно сохранить объект.
Вы уже напишите свой как вам надо, или к этому добавьте приправы, немного соуса и будет вкуснятина
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свойства/методы класса TicTac Общие вопросы Javascript 5 03.07.2011 14:53
Как изменить свойство css у всех элементов одного класса AlexJ Events/DOM/Window 7 19.03.2011 06:25
Как изменить параметр класса с помощью JS? Shitbox2 Events/DOM/Window 5 07.03.2011 20:52
Смена класса стиля у дивов в меню resono Элементы интерфейса 6 11.11.2010 04:08
Возможна ли смена типа созданного объекта в Javascript? phprus Общие вопросы Javascript 9 04.07.2009 02:41