我是jQuery和javascript的新手,我想让它每毫秒增加并用一个跨度替换每个数字,似乎替换了跨度工作但toFixed
导致错误< / p>
未捕获的TypeError:无法读取属性&#39; toFixed&#39;未定义的。
任何人都可以帮我吗?
function getValueTotal(){
var strAnn = '';
$.ajax({
type: 'POST',
url: '../a/getTotal',
data: {info:4},
dataType: 'json'
}).success(function(data){
if(data.status == '0'){
if(data.d.value=="0"){
strAnn = 8414735;
}else{
strAnn = data.d.value;
}
}else{
strAnn = 29451147;
}
$("#pTotal").html(strAnn);
$('#pTotal').countTo({
format: 'money',
from: strAnn,
to: 999999999.99,
speed: 100000000,
refresh_interval: 0.00001,
on_complete: function(value) {
$(this).hide().fadeIn(1000);
}
});
});
}
(function($) {
$.fn.countTo = function(options) {
options = $.extend({}, $.fn.countTo.defaults, options || {});
var loops = Math.ceil(options.speed / options.refresh_interval),
increment = (options.to - options.from) / loops;
return $(this).each(function() {
var _this = this,
loop_count = 0,
value = options.from,
interval = setInterval(update_timer, options.refresh_interval);
function update_timer() {
value += increment;
loop_count++;
if(options.format == 'money') {
// $(_this).html('$' + number_with_commas(value.toFixed(options.decimals)));
var valueData = $(_this).value.toFixed(options.decimals);
$(_this).html('$' + valueData.replace(/([^\x00-\x80]|\w)/g , ' <span class="some-number">$1</span>'));
} else {
$(_this).html(value.toFixed(options.decimals));
}
if(typeof(options.on_update) == 'function') {
options.on_update.call(_this, value);
}
if(loop_count >= loops) {
clearInterval(interval);
value = options.to;
if(typeof(options.on_complete) == 'function') {
options.on_complete.call(_this, value);
}
}
}
});
};
$.fn.countTo.defaults = {
from: 0,
to: 100,
speed: 1000,
refresh_interval: 100,
decimals: 2,
on_update: null,
on_complete: null
};
})(jQuery);
答案 0 :(得分:0)
更改此
var valueData = $(_this).value.toFixed(options.decimals);
要
var valueData = parseFloat($(_this).value);
if(!isNaN(valueData)){
valueData = valueData.toFixed(options.decimals);
}
值为字符串,字符串对象中没有toFixed函数。 并且还要注意,该值不是一个会引发异常的数字。