- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую. Сам я в js полный ноль, поэтому пришлось лезть на любимый серч за советом профи :)
Имеется несколько div, которые открываются по клику своего span и закрываются по клику span.
Проблема в том, что данные блоки не закрываются самостоятельно по клику на соседний span, тем самым мешают друг другу.
Подскажите пожалуйста что дописать надо, чтобы блоки закрывались при клике на соседний span.
Спасибо.
Код на странице
<div class="nav">
<span>Меню 1</span>
<div class="blok">Текст меню 1</div>
<span>Меню 2</span>
<div class="blok">Текст меню 2</div>
</div>
Подключаются 2 js
<script src="collapse.js"></script>
<script src="coc.js"></script>
<script>
$(".nav").collapse({show: function(){
this.animate({
opacity: 'toggle',
height: 'toggle'
}, 300);
},
hide : function() {
this.animate({
opacity: 'toggle',
height: 'toggle'
}, 300);
}
});
</script>
Блоки, которые отвечают за показ и закрытие div в коде collapse.js
// Bind event for showing content
obj.bind("show", function(e, bypass) {
var obj = $(e.target);
// ARIA attribute
obj.attr('aria-hidden', false)
.prev()
.removeClass(inactive)
.addClass(active);
// Bypass method for instant display
if(bypass) {
obj.show();
} else {
op.show.call(obj);
}
});
// Bind event for hiding content
obj.bind("hide", function(e, bypass) {
var obj = $(e.target);
obj.attr('aria-hidden', true)
.prev()
.removeClass(active)
.addClass(inactive);
if(bypass) {
obj.hide();
} else {
op.hide.call(obj);
}
});
Я так понимаю их надо изменить как-то :) Подскажите пожалуйста. Если надо выложу полностью код coc.js и collapse.js
And-ry, выложи полностью код
меняете на
Суть в чем - скрыть все элементы, а потом показать только нужный.
Если будет моргать - то такое решение не пойдет, надо будет перебирать все элементы и прятать только если элемент является не тем, по которому кликнули.