Javascript 当值为0时,jQuery旋钮显示NaN

Javascript 当值为0时,jQuery旋钮显示NaN,javascript,jquery,angularjs,jquery-knob,Javascript,Jquery,Angularjs,Jquery Knob,真奇怪 $(function(){ $('.dial').knob({ return value + '%'; }); }); 这是我最初的代码,让百分号显示出来,效果很好。由于某些原因,当值为0时,页面加载时显示为NaN。奇怪的是,只有高亮显示文本,然后单击“关闭”,它才会显示实际值0(替换NaN值)。知道是什么导致了这一切吗?我试图在格式挂钩中处理它: $(function(){ $('.dial').knob({ 'format': f

真奇怪

$(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之前加载”,因此它认为值未定义,因为我通过angularJS数据绑定传入value属性。但我试图处理它,但没有用。有什么想法吗?

value==NaN
不会起作用,因为令人惊讶的是,在javascript中,NaN并不等于NaN。试试看。

您确定您的条件检查正常吗?我总是使用
if(typeof(value)=='undefined'…
。可能值得一试。我会尝试一下,并让您知道。此外,在Firebug或类似软件中调试这一点会告诉您到底发生了什么。仍然不起作用。我开始越来越多地认为,在我的角度数据绑定之前加载jQuery旋钮是一个问题。我认为“格式”挂钩无法解决执行任何处理,而不是向值追加内容,因为条件检查没有任何作用。
value==NaN
将不起作用,因为在javascript
NaN
中,NaN不等于
NaN
。请改为尝试
isNaN()。