2013-03-12 2 views
0

Хорошо, это, вероятно, действительно вопрос о нобе, но я все равно спрошу!jQuery/JavaScript: изменение переменной только при определенных условиях

На данный момент моя функция определяется следующим образом:

function checkSize(size, otherSize, el) { 
    if ($(el).width() <= 800) { 
     size = otherSize; 
    } 

    alert(size); 
} 

, но это не будет работать.
Что работа является:

function checkSize(size, otherSize, el) { 
    if ($(el).width() <= 800) { 
     size = otherSize; 
    } else { 
     size = 5; 
    } 

    alert(size); 
} 

Но что жёстко значения есть, очевидно, очень плохо.
Итак, я хочу, чтобы size был только otherSize, если условие истинно, иначе size должно пройти без изменений. Как мне это сделать?

+1

«размер» должен пройти без изменений »- извините? В вашем первом фрагменте 'size' будет именно тем, что было передано в вызов функции, когда условие не совпадает. – jAndy

+0

Нет проблем. Если условие не соответствует, ничего не должно произойти со значением 'size'. – Sven

+1

code fine ... показать нам, где вы вызываете функцию htis – bipen

ответ

1

Вы должны убедиться, что аргумент является ИНТ, прежде чем использовать его, но только в том случае, если вы можете попробовать, чтобы заставить его в целое число, если это не :

function checkSize(size, otherSize, el) { 
    if(typeof size != 'number'){ 
     size = parseInt(size, 10); // 10 is to define you are using a decimal system 
    } 

    if ($(el).width() <= 800) { 
     size = otherSize; 
    } 

    alert(size); 
} 
0

не это то, что вы ищете:

function checkSize(size, otherSize, el) { 
    if ($(el).width() <= 800) { 
     size = otherSize; 
    } else { 
     size = $(el)width(); 
    } 

    alert(size); 
}