我正在使用YUI进度条,但我遇到了一些问题。
通常要更改进度条的值,可以使用:
progressBar.set('value', 10000);
value
是我要改变的地方,10000
是我想要改变它的地方。在控制台中,这将返回true
工作正常。但我想传递一个变量作为值:
progressBar.set('value', total);
但这对我不起作用,控制台报告false
以下是代码:
这会创建并呈现栏:
var progressBar = new YAHOO.widget.ProgressBar({
direction: "ttd",
height: "75px",
width: "750px",
anim: true,
minValue: 0,
maxValue: 85000,
value: 35000
}).render("bar");
var anim = progressBar.get('anim');
anim.duration = 3;
anim.method = YAHOO.util.Easing.bounceBoth;
这是一个ajax请求,用于获取我想设置栏的值:
var itemTotal, mITotal, donationTotal, total;
function showHint()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var myString = new String(xmlhttp.responseText);
var myArray = myString.split(',');
itemTotal = myArray[0];
mITotal = myArray[1];
donationTotal = myArray[2];
total = myArray[3];
progressBar.set('value', total);
alert(total);
}
}
xmlhttp.open("GET","goal_ajax.php",true);
xmlhttp.send();
}
有什么想法吗?
答案 0 :(得分:1)
此:
var myArray = myString.split(',');
...
total = myArray[3];
不会将total
设置为10000
(一个数字),而是设置为'10000'
(一个字符串)。我敢打赌,如果你要尝试
progressBar.set('value', '10000');
你会看到同样的问题。要解决此问题,请更改此:
total = myArray[3];
到此:
total = +myArray[3];
会将'10000'
转换为10000
。
(免责声明:未经测试。这只是猜测,但猜测一下,我对此非常有信心。)