Универсальная функция для сворачивания нескольких типовых блоков
На странице находятся несколько таблиц, над каждой из которых находится такая кнопка:
<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" по нему. Однако, решение кажется мне совершенно не изящным... Есть ли более правильные варианты? |
Цитата:
|
Цитата:
|
По моему, я четко объяснил, почему ID пока одинаковы: изначально требовалось сворачивать только один контейнер, теперь - несколько. Поэтому я и спросил совета, как это лучше реализовать. Я предложил свой вариант решения, но мне он показался весьма неизящным.
Мне прекрасно известно, что это маркированный список, который в данном случае отображает объект, который выглядит как кнопка. Думаю, это очевидно. Я обратился за помошью, а вы, вместо того, чтобы подсказать, что называется, лулзов словить пришли? |
действуйте через родителя, т .е. изнутри, а не снаружи
т.е. поиск не с начала документа, а от нажатой кнопки |
melky,
собственно, так и хочу, после некоторых раздумий. Что мне не нравится, так это то, что придется три раза вызвать getParent. |
и не надо %) посмотрите в сторону jquery.parents(selector)
_______ е-чее сафари заставляет таки срать кирпичами. написал целую тираду, хотел кинуть ссыль на доку - эта мразина перезагрузила страницу и убила весь напечатанный текст ЗЫ прошу прощения, эмоции :) |
Не страшно :) Спасибо, я попробую.
|
Часовой пояс GMT +3, время: 00:03. |