Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> end() в цепоцке вызовов jQuery, не работает end() в цепочке вызовов 
V
    Опции темы
JAYBE
Дата 19.10.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.3.2008

Репутация: -1
Всего: 0



Почему-то не работает end() в цепочке вызовов. Подскажите, в чем проблема
CSS-стиль:
Код

#accordion {
    width:100%;
}
.accordion {
    float: left;
    max-width: 100%;
    min-width:33%;
}
.accordion>dd {
    display: none;
}
.accordion>:first-child+dd {
    display: block;
}

HTML-разметка:
Код

<div class="accordion">
    <dt class="active">Секция #1</dt>
    <dd>Текст для секции #1</dd>
    <dt>Секция #2</dt>
    <dd>Текст для секции #2</dd>
    <dt>Секция #3</dt>
    <dd>Текст для секции #3</dd>
</div>

JS-код:
Код

$(window).ready(function() {
    $(".accordion").on("click", "dt", function() {
     var $this = $(this);
     $this.siblings(".active").removeClass("active").next().slideUp()    
          .end().addClass("active").next().slideDown();
    })
});


Это сообщение отредактировал(а) Aliance - 19.10.2012, 13:07
PM   Вверх
Aliance
Дата 19.10.2012, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 7
Всего: 137



Потому что в вашем примере end() отменяет вызов next(), а вы ожидаете отмены вызова siblings(). Либо написать два раза end() ( .end().end() ), либо, что более уместно по моему мнению, написать так:
Код

$(".accordion").on("click", "dt", function() {
    var $this = $(this);
    $this.siblings(".active")
        .removeClass("active")
        .next()
        .slideUp();
    $this.addClass("active")
        .next()
        .slideDown();
})​​

PM MAIL WWW ICQ Skype   Вверх
JAYBE
Дата 19.10.2012, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.3.2008

Репутация: -1
Всего: 0



Спасибо.
А как желательно использовать) трудности не возникает в любом из случаевв, но все же: что работает шустрее?
PM   Вверх
Aliance
Дата 19.10.2012, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 7
Всего: 137



Я уже написал как я считаю использовать лучше. На счет производительности не берусь сказать, но если мыслить логически (меньше вызовов функций end()), то как минимум мой вариант точно не медленнее. А вот быстрее ли - не знаю.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.1058 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.