Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2015, 13:20
Аспирант
Отправить личное сообщение для adash Посмотреть профиль Найти все сообщения от adash
 
Регистрация: 31.03.2015
Сообщений: 38

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

Все работает прекрасно.
Но.
Нужно, чтобы действие js не распространялось на первые 2 элемента. Т.е. нужно, чтобы первые 2 блока не сворачивались и были постоянно открыты.
Дело в том, что эти элементы генерируются php скриптом (дивы с id tab-x) и просто убрать стили нельзя.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2015, 14:27
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Не делать их частью аккордеона?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2015, 14:54
Аспирант
Отправить личное сообщение для adash Посмотреть профиль Найти все сообщения от adash
 
Регистрация: 31.03.2015
Сообщений: 38

trikadin,
А как его не делать, если все #tab-0 #tab-1 #tab-2 и прочие генерируются пхп. И добавляя стили в файл можно добавить ко всем, либо ни к одному
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2015, 16:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('.accordion-header').slice(2).on('click', function (e) {
        var $this = $(this);
        $this.parent().toggleClass('expanded');
        $this.next().toggle();
        $this.parent('.accordion').siblings('.accordion')... //эта строка бессмыслица
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2015, 17:24
Аспирант
Отправить личное сообщение для adash Посмотреть профиль Найти все сообщения от adash
 
Регистрация: 31.03.2015
Сообщений: 38

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


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

Последний раз редактировалось adash, 03.04.2015 в 17:26.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2015, 17:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Причем тут фильтр? А код управляет срезом элементов начиная с третьего. Первые же два просто раскройте, указав необходимое css свойство.
Ответить с цитированием
  #7 (permalink)  
Старый 03.04.2015, 18:34
Аспирант
Отправить личное сообщение для adash Посмотреть профиль Найти все сообщения от adash
 
Регистрация: 31.03.2015
Сообщений: 38

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать домен из js? MakTpaxep Общие вопросы Javascript 3 14.10.2016 14:22
Как воспроизвести звук посредством JS на телефоне ? FreeDas Мобильный JavaScript 14 06.03.2013 14:52
как отменить скролл в мобильном браузере только для одного элемента? mitiya Общие вопросы Javascript 5 09.08.2012 23:38
Как передавать параметры из php скрипта в js imissyouso Общие вопросы Javascript 3 01.08.2012 18:24
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00