Jquery Pushdown / SlideDown конфликт

0

Я следил за скрипкой, которую я нашел здесь, в stackoverflow

http://jsfiddle.net/abtPH/3/

$('li').on('click', function(e){
  $(this).find('.outer').slideToggle();
  $(this).toggleClass('active', 400);
});

И все работает по мере необходимости, однако, когда я нажимаю на несколько слайдов, все они должны быть закрыты в том порядке, в котором они были открыты, потому что они не закрываются после нажатия нового слайда вниз.

Есть ли способ сделать каждый слайд закрытым после открытия нового слайда?

Теги:

2 ответа

0
Лучший ответ

Вы можете закрыть другой '.outer' на 'li' siblings:

$('li').on('click', function (e) {
    $(this).find('.outer').slideToggle();
    $(this).toggleClass('active', 400);
    //remove the active class, then move to its '.outer' child and slide it up
    $(this).siblings().removeClass('active').find('.outer').slideUp();
});
0

Знак S правильный

если вы хотите оптимизировать код дальше, вы можете писать так:

$('li').on('click', function(e){
  $(this).find('.outer').slideToggle().end().siblings().removeClass('active').find('.outer').slideUp();                  
  $(this).toggleClass('active', 400);
});

Примечание:

В jsfiddele вы указали код div style = "width: 156px; height: указали встроенные стили. Вместо этого вы можете определить класс на div и объявить соответствующие стили в таблице стилей

Ещё вопросы

Сообщество Overcoder
Наверх
Меню