Как я могу заставить jQuery UI игнорировать определенные элементы в Аккордеоне? - PullRequest
4 голосов
/ 17 февраля 2012

У меня есть Jquery UI Accordion, к которому я динамически добавляю определенные элементы.Я использую самописный код сортировки, который позволяет мне добавлять динамические категории Аккордеон в правильном алфавитном порядке.Проблема, с которой я столкнулся, заключается в том, что если динамический элемент находится в самом верху или в самом низу аккордеона, то моя функция сортировки не срабатывает.

Я нашел способ джимми, который позволяет мне обойти проблему ссортировка путем создания фиктивных элементов внутри аккордеона с верхним элементом, имеющим id="0000000000000000000000000000", и нижним элементом с id="zzzzzzzzzzzzzzzzzzzzzzzzzzz"

. Проблема в том, что Аккордеон отключается, не зная, как обращаться с этими фиктивными элементами, и никакого количестваdisplay:none, visibility:hidden, disabled, или даже data-role="none" исправляет эту проблему.

Мой вопрос заключается в том, как добавить фиктивные элементы в самый верх и низ моего аккордеона, который будетполностью игнорируется аккордеоном.Для меня не имеет значения, является ли элемент div, span, img или любым другим, любой будет работать, пока аккордеон их игнорирует.

Спасибо.

1 Ответ

7 голосов
/ 17 февраля 2012

Хотя вы не можете явно указать, какие элементы для Accordion игнорировать, вы можете указать, какие из них он принимает, используя опцию header. Я предлагаю добавить класс с именем ignore к вашим верхним и нижним элементам, а затем использовать селектор :not(), чтобы включить любые другие элементы, которые не содержат этот класс.

См., Например, jsFiddle .

$('#myAccordion').accordion({
    header: 'h3:not(.ignore)'
}); 

Надеюсь, что решит вашу проблему. Как говорит Interrobang, проблема, скорее всего, связана с сортировкой.

...