Вы объявляете WhiteNav
внутри function() { ... }
, что означает, что он будет доступен только из этой функции.
Просто удалите $(function () { ... });
вокруг него, и он будет объявлен глобально - доступным из любого места после его объявления.
В качестве дополнительного примечания вы можете удалить $(function () { ... });
из своего внутреннего фрагмента <script>
. $(function () { ... });
и $(document).ready(function() { ... });
идентичны, и поэтому нет необходимости в обоих. Последнее просто стенография.
Редактирование: Для ответа на редактирование используйте Math.round
. Вы могли также моделировать эти Number
, объект иметь его выполняет Ваши указания, если Вы предпочитаете тот синтаксис.
Number.prototype.round = function() {
return Math.round(this);
}
var num = 3.5;
alert(num.round())
я никогда не использовал Number.toFixed()
прежде (главным образом, потому что большинство библиотек JS обеспечивает toInt()
метод), но оценка по Вашим результатам, я сказал бы, что это будет более последовательно для использования эти Math
методы (round
, floor
, ceil
) затем toFixed
, если непротиворечивость перекрестного браузера будет тем, что Вы ищете.
Я думаю, что FF делает правильную вещь с toFixed, так как шаг 10 ниже говорит, "Если существует два таких n, выберите больший n".
И как [1 170] Grant Wagner сказал: Используйте Math.ceil(x) или Math.floor(x) вместо [1 175] x.toFixed () .
Все ниже от Спецификация языка ECMAScript:
15.7.4.5
Number.prototype.toFixed (fractionDigits)
Возврат строка, содержащая число, представленное в представлении с фиксированной точкой с
fractionDigits
цифры после десятичной точки. ЕслиfractionDigits
не определено,0
принят. А именно, выполните следующие шаги:
- Позволяют
f
бытьToInteger(fractionDigits)
. (ЕслиfractionDigits
не определено, этот шаг производит значение0
).- , Если
f < 0
илиf > 20
, бросьтеRangeError
исключение.- Позволяют
x
быть этим числовым значением.- , Если
x
NaN
, возвратите строку"NaN"
.- Позволяют
s
быть пустой строкой.- , Если
x ≥ 0
, перейдите к s шага 9.- , которому Позволяют, быть
"-"
.- Позволяют
x = –x
.- , Если
x ≥ 10^21
, позвольтеm = ToString(x)
и перейдите к шагу 20.- , которому Позволяют
n
быть целым числом, для которого точное математическое значение [1 122] максимально близко к нулю. Если существуют два такиеn
, выберите большееn
.- , Если
n = 0
, позвольтеm
быть строкой"0"
. Иначе позвольтеm
быть строкой, состоящей из цифр десятичного представления [1 129] (в порядке, без продвижения обнуляет).- , Если
f = 0
, перейдите к шагу 20.- , которому Позволяют
k
быть количеством символов в [1 132].- , Если
k > f
, перейдите к шагу 18.- , которому Позволяют
z
быть строкой, состоящей из [1 135] случаи символа'0'
.- Позволяют
m
быть конкатенацией строкz
иm
.- Позволяют
k = f + 1
.- Позволяют
a
быть первымk–f
символы [1 143] и позволитьb
быть оставлениемf
символы [1 146].- Позволяют
m
быть конкатенацией трех строкa
,"."
, иb
.- Возврат конкатенация строк
s
иm
.
length
свойствоtoFixed
метод1
., Если
toFixed
метод называют больше чем с одним аргументом, то поведение не определено (см. раздел 15).реализации разрешают расширить поведение [1 157] для значений [1 158] меньше чем [1 159] или больше, чем [1 160]. В этом случае
toFixed
не обязательно бросил быRangeError
для таких значений.ПРИМЕЧАНИЕ вывод [1 163] может быть более точным, чем [1 164] для некоторых значений потому что
toString
только печать достаточно значащих цифр для различения числа от смежных числовых значений. Например,(1000000000000000128).toString()
возвраты"1000000000000000100"
, в то время как(1000000000000000128).toFixed(0)
возвраты"1000000000000000128"
.
Вместо toFixed(0)
использование Math.ceil()
или Math.floor()
, в зависимости от того, что требуется.
Определенно кажется, что путь, если Вы получаете непоследовательные ответы.
я могу только предположить, что Ваше намерение с usin toFixed (0) состоит в том, чтобы превратить десятичное число в целое число, в которой точке я рекомендую Math.floor (). Существует немного больше обсуждения лучшего способа сделать так в этот вопрос .