2015-09-11 4 views
-5

Я написал этот код, и я пытаюсь его оптимизировать.Два условия в одном

  if (imageEntity.get('image').get('value')[480]) { 
       sliderImages.push('<div style="opacity: ' + ((index === 0)? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(./../../connect/img/user-images/' + imageEntity.get('image').get('value')[480]+'?_='+Date.now() + ') center center no-repeat; background-size: cover;"></div>'); 
      } else if (imageEntity.get('image').get('value')[150]){ 
       sliderImages.push('<div style="opacity: ' + ((index === 0)? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(./../../connect/img/user-images/' + imageEntity.get('image').get('value')[150]+'?_='+Date.now() + ') center center no-repeat; background-size: cover;"></div>'); 
      } else { 
       sliderImages.push('<div style="opacity: ' + ((index === 0)? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(img/ctrl-thumb.png) center center no-repeat; background-color: #f6f6f6;"></div>'); 
      } 

Как объединить слайдерImages.Push в один? Есть imageEntity.get('image').get('value')[150]+'?_='+Date.now() + как я могу поставить 480 или 150 на основе того, что доступно?

Благодаря

+2

Разве вы не слышали о булевых операторах? –

+1

Вы пытались использовать оператор '||'? – Xufox

ответ

1

Рассмотрим этот кусок кода. В JavaScript вы можете условно установить такую ​​переменную.

var x = new Object(); 
var y = (window.i || window.x); 

В приведенном выше случае переменная «i» не определена, но переменной «x» нет. Установка переменной «y» с использованием оценки, как показано выше, делает значение «y» равным значению для «x», поскольку «i» не определено. Тем не менее, быть предупрежден о том, что следующее не работает:

var x = new Object(); 
var y = (i || x); 

Для оценки, чтобы добиться успеха, вам нужно использовать переменные в качестве членов какого-либо другого объекта. При этом может быть возможно пересмотреть ваш код следующим образом:

var i = (imageEntity.get('image').get('value')[480] || imageEntity.get('image').get('value')[150]); 
if(!i){ 
    sliderImages.push('<div style="opacity: ' + ((index === 0) ? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(img/ctrl-thumb.png) center center no-repeat; background-color: #f6f6f6;"></div>'); 
}else{ 
    sliderImages.push('<div style="opacity: ' + ((index === 0) ? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(./../../connect/img/user-images/' + i + '?_=' + Date.now() + ') center center no-repeat; background-size: cover;"></div>'); 
} 
0
var image = imageEntity.get('image').get('value')[480] || imageEntity.get('image').get('value')[150]; 
if (image) { 
    sliderImages.push('<div style="opacity: ' + ((index === 0)? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(./../../connect/img/user-images/' + image + '?_=' + Date.now() + ') center center no-repeat; background-size: cover;"></div>'); 
} else { 
    sliderImages.push('<div style="opacity: ' + ((index === 0)? 1 : 0) + '; transition: opacity .5s ease; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(img/ctrl-thumb.png) center center no-repeat; background-color: #f6f6f6;"></div>'); 
} 

Вы должны использовать классы CSS для div и установить только динамические значения с помощью JavaScript.

+0

imageEntity.get ('image'). Get ('value') [480] + '? _ =' + Date.now() как я могу вставить 480 или 150 на основе того, что доступно? Вот что я хотел знать – TechnoCorner

+0

Отредактировал свой ответ. Переменная 'image' будет либо содержать значение (если оно установлено), либо не определено. – b263

0

Постарайтесь не повторять то, что вы повторив ...

var img = imageEntity.get('image'); 
if (img.get('value')[480] || img.get('value')[150]) {} 
Смежные вопросы