我有一个进度条,我添加了一个条件,如果值低于100,颜色应该是红色;如果它是100,颜色应该变成绿色。但是当我调试代码时,我看到进度值返回0,即使为value属性分配了一些值。
下面是进度条代码,我在data-bind
属性中分配值100。
<div class="card-header float-right" style="width:50%; padding-left:100px;">
<progress id="myProgress" data-bind="attr: { value: 100, }" min="0" max="100"></progress>
</div>
下面是javascript代码;当我调试和检查进度值时,它显示0。
$(document).ready(function () {
var progressvalue = $("#myProgress").val();
var progressText = $("#myProgress").text();
if (progressvalue == 100) {
$('#myProgress').addClass("progress-100");
$('#myProgress').removeClass("progress-below");
}
else {
$('#myProgress').addClass("progress-below");
$('#myProgress').removeClass("progress-100");
}
});
2条答案
按热度按时间s5a0g9ez1#
从我在当前代码中看到的内容来看,您不需要
data-bind
属性(尽管您可能有超出所示内容的原因)。**编辑:**对于Knockout.js,您当然需要data-bind
属性。您所需要做的就是为
<progress>
元素设置一个value
,然后确保将其更新为as whatever process it represents is progressing。**编辑:**对于Knockout.js,您需要将
data-bind
属性绑定到ViewModel字段,并且该ViewModel字段需要与Observable相关联。你可以这样做(一个玩具例子,每秒增加10的进度值,但是展示了你如何更新你的ViewModel,以及在达到一个阈值后触发一个类的改变):
然后你必须弄清楚你希望如何更新你的可观察值。
lsmd5eda2#
如果你使用KnockoutJS,实际的进度可能是视图模型上的一个可观察属性。假设它实际上被称为
progress
,那么你应该像这样绑定它:对于样式,您应该使用
css
或class
绑定,根据进度为进度条分配一个类。下面是一个Fiddle的小例子,尽管我使用了Bootstrap progress元素,而不是实际的原生progress元素,因为这对样式来说是一个噩梦:https://jsfiddle.net/thebluenile/20zsqn5w/