【发布时间】:2014-07-07 15:26:03
【问题描述】:
真的很奇怪。
$(function(){
$('.dial').knob({
return value + '%';
});
});
这是我让百分号显示的原始代码,效果很好。出于某种原因,当值为 0 时,在页面加载时它显示为 NaN。奇怪的是,只有当您突出显示文本然后单击关闭时,它才会显示实际值 0(替换 NaN 值)。知道是什么导致这种情况发生吗?我尝试在格式挂钩中处理它:
$(function(){
$('.dial').knob({
'format': function( value ){
if(value == undefined || value == NaN {
value = 0;
return value + '%';
}
else{
return value + '%';
}
}
});
});
还是不行。我在控制台记录了我传入的值,果然它是 0。我认为它可能是“x 在 y 之前加载”,因此它认为该值是未定义的,因为我通过传递 value 属性angularJS 数据绑定。但我试图处理它无济于事。有什么想法吗?
【问题讨论】:
-
您确定您的条件检查工作正常吗?我总是使用
if(typeof(value) == 'undefined'...。可能值得一试。 -
我会尝试并告诉你。
-
另外,在 Firebug 或类似工具中调试它会告诉你到底发生了什么。
-
还是不行。我开始越来越多地认为这是在我的角度数据绑定之前加载 jQuery 旋钮的问题。而且我认为“格式”钩子除了在值上附加一些东西之外不能做任何处理,因为条件检查没有做任何事情。
-
value == NaN将不起作用,因为令人惊讶的是,在 javascript 中NaN不等于NaN。试试isNaN()。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript jquery angularjs jquery-knob