1

在我制作的一个网站上,我需要一个进度条,我找到了一个适合我需要的进度条。默认情况下,当达到某个百分比(0-30红色、30-70橙色等)时,它将增量更改颜色。我唯一的问题是更改它们,我可以用50这样的静态数字轻松设置它们,但当我尝试动态地进行设置时(例如:2000*.3=600),设置失败。我不太懂js/jquery,所以这对我来说特别困难,如果你能帮上忙的话,那就太好了。我很确定我错过了一些非常简单的东西。

失败的代码:

var barmax=2000;var orangeBound=Math.round(barmax*.3);var greenBound=数学圆形(barmax*.7);//警报(橙色界限+“:”+绿色界限);$(“#pb1”).progressBar({max:barmax,textFormat:'分数',条形图:{0:'图像/progressbg_red.gif',orangeBound:'图像/progressbg_orange.gif',greenBound:'images/progressbg_green.gif'}});

代码有效,但我无法使用,因为它必须是动态的:

$(“#pb1”).progressBar({max:barmax,textFormat:'分数',条形图:{0:'图像/progressbg_red.gif',600:'图像/progressbg_orange.gif',1400:“images/progressbg_green.gif”}});

如果您需要查看源代码,在这里再次感谢!

2个答案2

重置为默认值

在JS中,{orangeBound:“foo”}只会产生一个名为“orangeBond”的键,其中包含值“foo“。您必须单独构建对象:

var barImages={0:'images/progressbg_red.gif'};barImages[orangeBound]='images/progressbg_orange.gif';// ...$(…).progressBar({…,barImage:barImages});
1
  • 谢谢您。这节省了我很多时间。
    – 利瑙
    评论 2010年4月9日23:35
1

问题是使用橙色声音因为对象文本中的键意味着字符串“橙色绑定”使用,而不是变量的值。相反,尝试按如下方式构建对象:

var barImage={0:“图像/progressbg_red.gif”};barImage[orangeBound]='images/progressbg_orange.gif';barImage[greenBound]='images/progressbg_green.gif'var barmax=2000;var orangeBound=Math.round(barmax*.3);var greenBound=数学圆形(barmax*.7);$(“#pb1”).progressBar({最大:barmax,textFormat:'分数',bar图像:bar图像});

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.