Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как отменить действие js на определенном блоке? (https://javascript.ru/forum/dom-window/54851-kak-otmenit-dejjstvie-js-na-opredelennom-bloke.html)

adash 03.04.2015 13:20

Как отменить действие js на определенном блоке?
 
Здравствуйте.
Организовал вот такой аккордеон.
http://jsfiddle.net/adash/p2twc9Lt/

Все работает прекрасно.
Но.
Нужно, чтобы действие js не распространялось на первые 2 элемента. Т.е. нужно, чтобы первые 2 блока не сворачивались и были постоянно открыты.
Дело в том, что эти элементы генерируются php скриптом (дивы с id tab-x) и просто убрать стили нельзя.

trikadin 03.04.2015 14:27

Не делать их частью аккордеона?

adash 03.04.2015 14:54

trikadin,
А как его не делать, если все #tab-0 #tab-1 #tab-2 и прочие генерируются пхп. И добавляя стили в файл можно добавить ко всем, либо ни к одному

laimas 03.04.2015 16:50

$('.accordion-header').slice(2).on('click', function (e) {
        var $this = $(this);
        $this.parent().toggleClass('expanded');
        $this.next().toggle();
        $this.parent('.accordion').siblings('.accordion')... //эта строка бессмыслица

adash 03.04.2015 17:24

Не, не то. Блоки при этом закрыты полностью. А должны быть открыты и не закрываться...
Этого эффекта я добился внеся такие изменения:
$('.accordion-header').filter(':gt(1)').on('click', function (e) {


Но первые 2 блока должны быть всегда открыты...

laimas 03.04.2015 17:34

Причем тут фильтр? А код управляет срезом элементов начиная с третьего. Первые же два просто раскройте, указав необходимое css свойство.

adash 03.04.2015 18:34

laimas,
Дествительно, спасибо, выручили )


Часовой пояс GMT +3, время: 20:15.