04.08.2011, 14:18
|
Аспирант
|
|
Регистрация: 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.
Причина: исправление
|
|
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.
|
|
04.08.2011, 15:36
|
Аспирант
|
|
Регистрация: 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 посмотрите меню
|
|
04.08.2011, 15:52
|
Профессор
|
|
Регистрация: 29.06.2011
Сообщений: 445
|
|
Так почему бы не посмотреть, как там сделано?
|
|
04.08.2011, 17:20
|
Аспирант
|
|
Регистрация: 04.08.2011
Сообщений: 38
|
|
Геморой в том, что там сделано так же. т.е. если кликать поочередно по всем 3-ем пунктам, то классы поменяются у всех. А нужно, что бы кликая на другой, то у предыдущего класс становился прежним. Так что бы активным бал только один.
|
|
04.08.2011, 17:23
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Ну запоминай предыдущий элемент, и меняй ему класс
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
04.08.2011, 21:43
|
Аспирант
|
|
Регистрация: 04.08.2011
Сообщений: 38
|
|
Извините меня, но не могли бы вы показать на примере??
Просто я только начал изучать этот язык.
|
|
05.08.2011, 11:52
|
|
Профессор
|
|
Регистрация: 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 клацай
|
|
05.08.2011, 12:30
|
Аспирант
|
|
Регистрация: 04.08.2011
Сообщений: 38
|
|
Класс. Работает как нужно. Спасибо.
Но у меня еще один маленький вопрос по скрипту: если кликнуть по активному элементу, а потом еще раз, то пока не кликнешь по другим, то ничего не произойдет.
|
|
05.08.2011, 12:32
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Денис2201,
Правильно, это же был всего лишь пример как можно сохранить объект.
Вы уже напишите свой как вам надо, или к этому добавьте приправы, немного соуса и будет вкуснятина
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
|
|