|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.04.2014, 13:04 | #1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Аккордеон и модуль пагинации в нем: как оставить раскрытую панель открытой
Дорогие форумчане, у меня такая техническая проблема: есть элемент аккордеон, при раскрытии панели в ней отображается длинющий список, например, в одной из панели есть список учеников, которые занимаются в творческих кружках.
Для листания этого длинного списка у меня прямо в панель добавлен модуль пагинации (показывает вначале 20 учеников, затем следующие 20 ит.д.). Проблема в том, что при нажатии "следующие 20", аккордеон схлопывается, и его приходиться заново открывать. Я знаю, что используются в в представлении в <div> атрибуты active или collapse in, чтобы панель сразу была открытой. Но у меня такой случай, что изначально панель должна быть закрытой, а потом уже если раскрыли ее и стали листать список, панель оставалась открытой до тех пор пока нужна пользователю. Извините, код предоставить не могу - у меня он состоит из нескольких модулей (пишу на Kohana) - там и контроллер, и модель, и аккордеон этот во вьюшке и еще в модулях отдельный модуль для пагинации. И плюс ко всему это все еще подается с Bootstrap 3. Тут вообще можно будет запутаться окончательно. Веть это наверное как-то просто делается, может быть даже через javascript, но мне что-то не сообразить. Я буду Вам очень благодарна за добрый совет, который поможет мне обойти эту техническую проблему.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
20.04.2014, 13:35 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Я скажу как делал у себя: Список (тоже не маленький, около 10000 позиций) получал при входе на сайт. Юзер браузер не зарывал, сеанс не прерывал. Браузер у себя этот список помнил и при необходимости типа фильтрации отбирал и показывал. Т.е. основная идея - получить раз использовать многократно.
I'm learning to live...
|
|
20.04.2014, 23:48 | #3 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Список конечно не 1000 позиций, но все равн длинный. Поэтому и было решено выводить по 20 позиций на лист.
И фильтрацией здесь не обойдешься: там все уникальные значения. Если бы не этот аккордеон я бы горя не знала, а так, у меня из-за нехватки места на предствлении был сделан аккордеон, и я думала, что дело в шляпе..... Может, как-то javascript может решить эту проблему?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
21.04.2014, 14:26 | #4 | |
Форумчанин
Регистрация: 15.02.2012
Сообщений: 821
|
Цитата:
^-.-^ My GitHub
|
|
21.04.2014, 22:55 | #5 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Уважаемый Fenex, спасибо за идею. Сейчас буду крутить. Я уже грешным делом думала какю-то кнопку дополнительную делать, типа "закрыть список" и пока на нее не нажато не закрывать панель....
А с флагом идея мне кажется очень разумной. Дело за малым - граммотно эту идею реализовать. Я Вам ставлю плюс за идею. UPD: Идея с флагом накрылась медным тазом, образно говоря. Нашла шикарный пример http://dbmast.ru/blok-akkordeon-na-c...rodolzhayutsya Сделала под него болванку-тест, но все равно идет перегрузка всей страницы, когда идет обращение к модулю пагинации. Если не дергать пагинацию, модули раскрытых панелей сохраняются открытими идеально. А с пагинацией в адресной строке идет переадресация имя_сайта?page=3 (это, к примеру мы на третью страницу переходим), ну и панели схлопываются. То есть надо что-то мудрить с идентификатором ссылки и уже основываясь на этой реакции назначать какой-нибудь display: block ( или activate или collapse in). Это все чудесно, но у меня может быть и 5 и 10 страниц, это надо тогда что то "со звездочкой" придумывать. Что-то типа Код:
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 22.04.2014 в 02:54. |
22.04.2014, 14:10 | #6 | |
Форумчанин
Регистрация: 15.02.2012
Сообщений: 821
|
Цитата:
^-.-^ My GitHub
|
|
16.05.2014, 22:39 | #7 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Извините, что я заново возвращаюсь к данной теме, но проблема так и осталась не решена.
Вот я пытаюсь решить эту проблему при помощи cookie. Идея в следующем: изначально все свойства у панелей должны быть collapse Код:
Вот эти панели с переменной: Код:
Код:
Далее мне не совсем понятно, каким образом изначально, когда мы открываем окно браузера и у нас не установлены еще cookie, мы можем заказать это свойство collapse, ведь по умолчанию, если ничего не сказано у элемента panel свойство "collapse in". И вообще мне кажется, должен быть более изящный способ использования в данной ситуации cookie для активизации панелей. Почему-то распространенные в Интернете примеры с использованием свойства "active" и вызовом номера панели у меня не срабатывают (что-то типа если переменная куки установлена, панель номер такой-то active). Может быть Вы, дорогие форумчане, посоветуете, как исправить код - подобное присвоение collapse/collapse in работает очень криво, и может быть есть действительно очень простой ход, о котором я не знаю, поэтому приходиться мудрить.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 16.05.2014 в 22:42. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить ссылку открытой страницы | Evgeniy77 | Мобильные ОС (Android, iOS, Windows Phone) | 0 | 25.02.2014 15:40 |
при нажатии кнопки 1 запускался модуль 2 а в нем переменная n была равна 1, | Vceznayka | Microsoft Office Excel | 16 | 24.11.2011 02:35 |
TabControl как взять надпись открытой вкладки | yuran111 | Общие вопросы Delphi | 3 | 11.05.2011 14:30 |
как произвести поиск в другой открытой книге? | ShamanK | Microsoft Office Excel | 1 | 08.12.2009 05:30 |
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон | Romanbl4 | Общие вопросы Delphi | 6 | 27.06.2007 17:23 |