Тег spoiler для Jevix

Реализовал специальный тег spoiler, чтобы прятать куски текста. Работает при помощи новой возможности JevixcfgSetAutoPregReplace. Небольшая демонстрация
Круто, да?


Смысл в том, чтобы разобрать тег в определенном формате и разбить его на ссылку и скрытый блок. А затем показывать по клику.

Вот готовый рецепт:
1. Дописываем в правило cfgSetAutoPregReplace новую регулярку
// в первый массив правила
"\/<spoiler\\s{1,10}title=\"(.*)\">(.*)<\\\/spoiler>\/Uis"
// во второй
"<span class=\"spoiler_link\">$1<\/span><span class=\"spoiler\">$2<\/span>"
2. Разрешаем тег spoiler в правиле cfgAllowTags
3. Добавляем обработку на jQuery
$(document).on('click', '.spoiler_link', function() {
	$(this).next('.spoiler').toggle();
        // можно убирать спойлер после клика
        //$(this).removeClass('spoiler_link');
})
4. и стиль CSS
.spoiler {display:none;}
.spoiler_link {border-bottom: 1px dashed #08C; cursor:pointer;}
.spoiler_link.active {border-bottom: none;}
Теперь можно использовать спойлеры вот так:
<spоiler title="Небольшая демонстрация">
    <prе>Круто, да?</prе>
</spоiler>
Этот пример не нужно копипастить — в нем поменяны английские «o» и «e» на русские, чтобы Jevix его не обработал.

Следующая заметка
Вывод тикетов пользователя
Предыдущая заметка
Как не чистить кэш всего сайта?


Комментарии ()

  1. Виталий Воропаев 02 декабря 2012, 19:36 # 0
    Да не плохо. Спасибо!
    1. Алексей 15 апреля 2013, 15:29 # 0
      Вчера попробовал, работает!

      Но вот если попробовать сделать 2 тега spoiler и video, то обломс. Обрабатывается только 1 из них! Таким образом спрятать видео под спойлер не получается…
      Добавление новых комментариев отключено.