我有一个渐进式条,当工作正常时,但我试图实现的是,如果百分比低于 50%,我希望渐进式条从绿色变为红色。我正在 jQuery 中工作,但没有得到结果,我可以得到一些帮助吗?
提前致谢
<td>
<span class="header-text">
<div class="progress-bar progress-bar-success progress-bar-striped active progressbartextcolor" id="below50percent" role="progressbar" aria-valuenow="25" aria-valuemin="0" v-bind:style="{width: customerLoan.progress + '%'}" aria-valuemax="100">{{customerLoan.progress || "0"}}%</div>
</span>
</td>
<script>
$(document).ready(function(){
var bars =
$('{{customerLoan.progress}}');
for (i = 0; i < bars.length; i++)
{
console.log(i);
var progress = $(bars[i]).attr('{{customerLoan.progress}}');
$(bars[i]).width(progress + '%');
if (progress <= "50")
{
$(bars[i]).addClass("progress-bar-danger");
}
}
});
</script>
欢迎来到 SO。我建议你不要将jQuery用于此类操作。Vue.js 有内置的指令,称为 [v-bind:class][1]。您所要做的就是创建具有所有类要求的计算对象,然后将其绑定到进度栏。在这里,我有一个可行的解决方案:
new Vue({
el: "#app",
data: {
customerLoan: {
progress: 40
}
},
methods: {},
computed: {
classObject: function() {
return {
'bg-success': this.customerLoan.progress >= 50,
'bg-danger': this.customerLoan.progress < 50
}
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<table id="app">
<tr>
<td>
<span class="header-text">
<div class="
progress-bar
progress-bar-striped
active
progressbartextcolor"
id="below50percent"
role="progressbar"
aria-valuenow="25"
aria-valuemin="0"
aria-valuemax="100"
v-bind:class='classObject'>
{{ customerLoan.progress }}%
</div>
</span>
</td>
</tr>
</table>
您可以手动更改 customerLoan.progress 以确保类更改。希望这对您有所帮助! [1]: https://v2.vuejs.org/v2/guide/class-and-style.html