Знатокам js

And-ry
На сайте с 02.01.2008
Offline
163
558

Приветствую. Сам я в 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

mugukamil
На сайте с 05.11.2013
Offline
26
#1

And-ry, выложи полностью код

ДП
На сайте с 23.11.2009
Offline
203
#2


obj.bind("show", function(e, bypass) {
var obj = $(e.target);

меняете на


obj.bind("show", function(e, bypass) {
$("div.blok").hide();
var obj = $(e.target);

Суть в чем - скрыть все элементы, а потом показать только нужный.

Если будет моргать - то такое решение не пойдет, надо будет перебирать все элементы и прятать только если элемент является не тем, по которому кликнули.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий