Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите найти ошибку (https://javascript.ru/forum/dom-window/54190-pomogite-najjti-oshibku.html)

vasilinavv 07.03.2015 18:10

Помогите найти ошибку
 
В шаблонах для всех страниц выводится чанк Анонсы событий/Реклама разделенные кнопкой. Как сделать если Анонсы есть — то активная кнопка Анонсы, если Анонсов нет — активная кнопка Реклама?

Код:

<div class="announcements_keywords">
  <div class="inner">
        <div class="buttons">
        <div class="inl">Анонсы</div><div class="inl active">Реклама</div>
        </div>
        <div class="items">
          <div class="announcements" style="display: none;">
                [[!pdoResources?
                &parents=`49`
                &sortdir=`DESC`
                &tpl=`anonsyTpl`
                &limit=`10`
                &includeTVs=`day, month, year`
                ]]
          </div>
          <div class="article">
                [[!pdoResources?
                &parents=`82`
                &sortdir=`DESC`
                &tpl=`reklamaTpl`
                &limit=`1`
                &includeTVs=`name, tel`
                ]]
          </div>
        </div>
  </div>
</div>


Если значение НЕ пусто (т.е. Анонсы есть), то скрывается блок div.article ("display: none;"), отображается блок div.announcements, добавляется CSS класс .active к первому блоку div в контейнере div.buttons и убирается CSS класс .active у второго (последнего) блока div в контейнере div.buttons

Код:

if ($('.announcements').text()) {
        $('.article').css('display','none');
        $('.announcements').css('display','block');
        $('.buttons div:first').addClass('active');
        $('.buttons div:last').removeClass('active');
}


laimas 08.03.2015 03:56

А почему клиент должен разбираться что есть, а что пусто? Серверный скрипт, шаблонизатор вами используемый не может этого сам сделать, и вообще не показывать кнопку и блок чанка, которого на момент вывода нет?

danik.js 08.03.2015 06:35

vasilinavv,
Вынеси код получения анонсов в чанк, допустим Announcements, и вставляй его так:
Код:

[[$Announcements:notempty=`<div class="announcements">[[$Announcements]]</div>`]]


Часовой пояс GMT +3, время: 12:59.