2016-03-18 2 views
0

У меня есть следующий скрипт, который проверяет различные размеры изображения каждый раз, когда карусель загружает элемент и на основе его размера применяет класс. Он работает для всех изображений, кроме одной строки внутри функции.функция пропускает 1 из операторов условия if

Строка, которая не читается:

if (img.width() == '728' && img.height() == '90' || img.width() == '468' && img.height() == '60') { 
     img.addClass('tops'); 
    } 

Сценарий:

$("#carousel-container-mobile, #carousel-container-desktop").on('slid.bs.carousel', function() { 
    var imgs = $('.item'); 
    $(imgs).each(function() { 
    var img = $('img', this); 
    if (img.width() == '320' && img.height() == '50' || img.width() == '300' && img.height() == '50') { 
     img.addClass('top'); 
    } 
    if (img.width() == '728' && img.height() == '90' || img.width() == '468' && img.height() == '60') { 
     img.addClass('tops'); 
    } 
    if (img.width() == '300' && img.height() == '250') // 300 x 250 
    { 
     img.addClass('mid'); 
    } 
    if (img.width() == '120' && img.height() == '600' || img.width() == '160' && img.height() == '600') // 120 x 600 
    { 
     img.addClass('right'); 
    } 
    }); 

}); 

Все другие изображения работают размеры, но они? не знаю почему. Синтаксис кажется правильным, но я чувствую, что это разметка операторов if?

Fiddle: http://jsfiddle.net/r2wLz6xr/11/

+2

кажется, что он работает в скрипке? – user2079802

+0

protip: кешируйте эти значения. Не назовите 'img.width()' и 'img.height()' все время, установите 'var w = img.width(), h = img.height()' и сделайте ваш бит более легким для чтения , Люди, которых вы просите о помощи, будут рады, что вы это сделали. –

+0

Вы должны окружить && в круглых скобках в if && + || комбо. – Will

ответ

0

Я думаю, это потому, что высота & ширина была изменена каруселью, чтобы соответствовать области.

Это '611' '76' вместо '728' '90'

Посмотрите на это: http://jsfiddle.net/r2wLz6xr/12/

+0

Принимая ваш ответ, потому что вы впервые указали на его видовое окно. – bscherm

0

Основной проблемой является ширина контейнера. Ширина изображения превышает ширину контейнера. Таким образом, изображение не получает общую ширину, а img.width() возвращает значение менее 720 для этого изображения.

Смежные вопросы