Перейти к публикации

Необходима небольшая помощь с массивом на JS


Рекомендованные сообщения

Есть код js


  var usa = [ 'Нью Йорк', 'Лос Анджелес', 'Вашингтон' ];

  if( $( '.box header' ).text(usa) ) {

   $( '.box' ).addClass( 'box-usa' );

  }

  var russia = [ 'Москва', 'Санкт Петербург', 'Владивосток' ];

  if( $( '.box header' ).text(russia) ) {

   $( '.box' ).addClass( 'box-russia' );

  }

и код шаблона (динамически выводится)

<div class="box">

  <header><h5>{city}</h5></header>

{info}

</div>

Суть проблемы в том, что когда генерится контент, DIV'у с классом box добавляются оба класса - box-usa и box-russia

Как правильно записать условие? Всю ночь химичу и не выходит. И почитать нигде не нахожу об этом.

Ссылка на сообщение
Поделиться на других сайтах

Помогли на другом форуме. Вот решение.


var usa = [ 'Нью Йорк', 'Лос Анджелес', 'Вашингтон' ];

  if(inString(usa)) {

   $( '.box' ).addClass( 'box-usa' );

  }

  var russia = [ 'Москва', 'Санкт Петербург', 'Владивосток' ];

  if(inString(russia)){

   $( '.box' ).addClass( 'box-russia' );

  }

А теперь определим inString :

function inString(ar){

var s = $( '.box header' ).text();

  if (jQuery.inArray(s,ar)>-1) {


  return true;


  }

}

Все это делал для разного дизайна выводимой информации и ошибок у DLE. То есть чтобы например блок с информацией выводился синим, а с ошибками - красным. Конечный результат: info.tpl

<div class="box">

  <header><h5>{title}</h5></header>

{error}

</div>

style.css

.box {

border: 1px solid #d2d2d4;

border-bottom-color: #a2a2a4;

-moz-border-radius: 6px;

-webkit-border-radius: 6px;

border-radius: 6px;

background: #fdfdff;

-moz-box-shadow:

  0 1px 3px rgba(0,0,0,0.08),

  inset 0 1px 0 rgba(255,255,255,1.0);

-webkit-box-shadow:

  0 1px 3px rgba(0,0,0,0.08),

  inset 0 1px 0 rgba(255,255,255,1.0);

box-shadow:

  0 1px 3px rgba(0,0,0,0.08),

  inset 0 1px 0 rgba(255,255,255,1.0);

padding: 10px 10px 10px 40px;

}

.box-info {

border-color: #a1c0d0;

border-bottom-color: #79a0b4;

background: #ebf5fa url("../dleimages/box_info.png") 0 0 no-repeat;

color: #1d5e80;

}

.box-warning {

border-color: #edb1a2;

border-bottom-color: #d18c7b;

background: #fff0eb url("../dleimages/box_warning.png") 0 0 no-repeat;

color: #963e27;

}

подключаемый код скрипта:

  function inString(ar){

   var s = $( '.box header' ).text();

   if (jQuery.inArray(s,ar)>-1) {

    return true;

   }

  }

  var warning = [ 'Ошибка регистрации', 'Ошибка авторизации', 'Внимание, обнаружена ошибка' ];

  var info = [ 'Информация', 'Уведомление отправлено', 'Регистрация успешно завершена' ];

  if(inString(warning)) {

   $( '.box' ).addClass( 'box-warning' );

  }

  if(inString(info)){

   $( '.box' ).addClass( 'box-info' );

  }

Для массивов warning и info пока еще не все варианты титлов нашел, но если появится новый обновлю и сообщу, кому интересно

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...