2016-01-04 2 views
2

У меня возникла проблема с функцией, не выполняемой с помощью инструкции if в IE и Safari. Мой код работает в chrome и firefox. В представлении списка продуктов я собираю каждый продукт по названию продукта. Затем я определяю его длину и высоту, и если он создает многострочное имя в своем контейнере, я хочу подтолкнуть продукт, чтобы выровнять названия продуктов.JQuery - больше, чем использование не работает в IE/safari

По какой-то причине в IE и Safari функция не будет выполняться после этого оператора if.

if((currNameLength >= 39) && (currNameHeight >= 36)) { 

он выполняет, если я использую =, поэтому я считаю, IE и Safari не нравится> =

$('.name-link').each(function() { 

    var currNameLength = $(this).text().length; 
    var currNameHeight = $(this).height(); 
    var currName = $.trim($(this).text()); 

    if((currNameLength >= 39) && (currNameHeight >= 36)) { 

     $(this).parents('div[class="product-tile"]').css('position', 'relative'); 
     $(this).parents('div[class="product-tile"]').css('top', '20px'); 
     $(this).parents('div[class="product-tile"]').css('border', '1px solid green'); 

    } 

}); 

Спасибо за любую помощь.

+0

проверить 'console.log (currNameHeight)', если он работает? – Gintoki

+0

У меня были проблемы в прошлом, когда IE обрабатывал число как строку, хотя он был явно назначен как число. Мое обходное решение заключалось в том, чтобы каждый раз называть parseInt. –

+1

Не знаете, зачем нужна currNameLength> = 39, если у вас уже есть currNameHeight> = 36? – DinoMyte

ответ

2

Это потому, что значение возвращается как строка. Попробуйте добавить:

parseInt(currNameHeight) 

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

ParseInt() будет разбирать строки в целые

Кроме того, поскольку значение может быть возвращено с «рх» в конце это сделать это:

//to remove the px from the value before parsing it 
parseInt(currNameHeight.replace('px','')) 

currNameHeight.replace («рх» , '') заменит любые «px», которые он находит в строке с «ничего», прежде чем разбирать ее как число.

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