Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2011, 14:28
Интересующийся
Отправить личное сообщение для fennick Посмотреть профиль Найти все сообщения от fennick
 
Регистрация: 24.08.2011
Сообщений: 11

Универсальная функция для сворачивания нескольких типовых блоков
На странице находятся несколько таблиц, над каждой из которых находится такая кнопка:

<ul id="icons" style="margin-top: -5px;">
<li class="ui-state-default ui-corner-all" title="Reload">
<span id="do_wrap_steps_table" class="ui-icon ui-icon-arrow-1-n"></span>
</li>
</ul>


Код, сворачивающий блок с ID "steps_table_wrapper":
$('#do_wrap_steps_table').click(function(event) {
	$('#steps_table_wrapper').slideToggle('slow', function() {
		var srcClass = $('#do_wrap_steps_table').attr('class');
        if(srcClass == 'ui-icon ui-icon-arrow-1-n') {
            $('#do_wrap_steps_table').attr('class', 'ui-icon ui-icon-arrow-1-s');
        } else {
            $('#do_wrap_steps_table').attr('class', 'ui-icon ui-icon-arrow-1-n');
        } 
});
});


Поскольку я обращаюсь к каждому блоку "steps_table_wrapper" по ID, реагируя на нажатие кнопок, ID которых пока тоже одинаковы сворачивается только первый из них. Чтобы сворачивать всегда только нужный блок, предполагается такое решение: пронумеровать кнопки и блоки, изменив код JS таким образом, чтобы реакция осуществлялась при нажатии на любом объекте класса "кнопка" и, беря ID кнопки, выделяя ее номер, и выбирая ID блока "steps_table_wrapper" по нему.
Однако, решение кажется мне совершенно не изящным... Есть ли более правильные варианты?
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2011, 15:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от fennick
ID которых пока тоже одинаковы
Такого быть не должно...
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2011, 15:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от fennick Посмотреть сообщение
На странице находятся несколько таблиц, над каждой из которых находится такая кнопка:

<ul id="icons" style="margin-top: -5px;">
<li class="ui-state-default ui-corner-all" title="Reload">
<span id="do_wrap_steps_table" class="ui-icon ui-icon-arrow-1-n"></span>
</li>
</ul>
Вообще-то это маркированый список...
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2011, 18:32
Интересующийся
Отправить личное сообщение для fennick Посмотреть профиль Найти все сообщения от fennick
 
Регистрация: 24.08.2011
Сообщений: 11

По моему, я четко объяснил, почему ID пока одинаковы: изначально требовалось сворачивать только один контейнер, теперь - несколько. Поэтому я и спросил совета, как это лучше реализовать. Я предложил свой вариант решения, но мне он показался весьма неизящным.

Мне прекрасно известно, что это маркированный список, который в данном случае отображает объект, который выглядит как кнопка. Думаю, это очевидно. Я обратился за помошью, а вы, вместо того, чтобы подсказать, что называется, лулзов словить пришли?
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2011, 21:09
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

действуйте через родителя, т .е. изнутри, а не снаружи

т.е. поиск не с начала документа, а от нажатой кнопки
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2011, 23:59
Интересующийся
Отправить личное сообщение для fennick Посмотреть профиль Найти все сообщения от fennick
 
Регистрация: 24.08.2011
Сообщений: 11

melky,
собственно, так и хочу, после некоторых раздумий.
Что мне не нравится, так это то, что придется три раза вызвать getParent.
Ответить с цитированием
  #7 (permalink)  
Старый 24.09.2011, 00:01
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

и не надо %) посмотрите в сторону jquery.parents(selector)


_______
е-чее сафари заставляет таки срать кирпичами. написал целую тираду, хотел кинуть ссыль на доку - эта мразина перезагрузила страницу и убила весь напечатанный текст


ЗЫ прошу прощения, эмоции

Последний раз редактировалось melky, 24.09.2011 в 00:19.
Ответить с цитированием
  #8 (permalink)  
Старый 26.09.2011, 13:23
Интересующийся
Отправить личное сообщение для fennick Посмотреть профиль Найти все сообщения от fennick
 
Регистрация: 24.08.2011
Сообщений: 11

Не страшно Спасибо, я попробую.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Универсальная функция Ajax запроса Finesse AJAX и COMET 21 15.06.2011 17:17
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51
Некорректно работает функция для создания элементов exec Общие вопросы Javascript 4 13.07.2010 11:15
Универсальная функция для формы Nightmare Общие вопросы Javascript 5 16.04.2010 18:42
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48