私のコードでは、count 変数と countin 変数の for ループのようなものです。最後のループでは、すべて問題なく正しい値を返しますが、過去の値を返すことはできません。
何が問題ですか ?
これは私のコードです:
@{
int count = 1;
int countin = 110;
}
@foreach (var item in Model) {
<script>
obj = {};
obj[@count] = Math.round(@Html.DisplayFor(modelItem => item.ProgressPercent) * 268 / 100);
var objin = {};
objin[@count] = "-" + obj[@count] + "px 0";
var jq3 = jQuery.noConflict();
jq3(document).ready(function () {
jq3("#bar-pro-@count").css({ "background-position": objin[@count] });
if (obj[@count] == 100) {
jq3("#bar-pro-@count").css({ "background-image": "none" });
jq3("#bar-pro-@countin").css({ "background-image": "none" });
};
});
</script>
<div class="bar-t"><b>@Html.DisplayFor(modelItem => item.Name) | در مرحله : @Html.DisplayFor(modelItem => item.Phase)</b></div>
<div class="bar-100">
<div class="bar" id="bar-pro-@countin">
</div>
<div class="bar-pro" id="bar-pro-@count"></div>
<div class="bar-num"><script> document.write(@Html.DisplayFor(modelItem => item.ProgressPercent) + "%");</script></div>
</div>
count = count + 1;
countin = countin + 10;
}
HTMLでレンダリングした後:
<script>
obj = {};
obj[1] = Math.round(12 * 268 / 100);
var objin = {};
objin[1] = "-" + obj[1] + "px 0";
var jq3 = jQuery.noConflict();
jq3(document).ready(function () {
jq3("#bar-pro-1").css({ "background-position": objin[1] });
if (obj[1] == 100) {
jq3("#bar-pro-1").css({ "background-image": "none" });
jq3("#bar-pro-110").css({ "background-image": "none" });
};
});
</script>
<div class="bar-t"><b>Progress</b></div>
<div class="bar-100">
<div class="bar" id="bar-pro-110">
</div>
<div class="bar-pro" id="bar-pro-1"></div>
<div class="bar-num"><script> document.write(12 + "%");</script></div>
</div>
これはループの 1 つにすぎません。必要に応じて、完全なコードと結果を掲載できます。注: 最後の値は正しく、css に適用されますが、CSS の過去の値は機能しません。
何が問題ですか ?
注:問題が見つかりました。obj および objin 配列が loop にあるためです。それらはループから外れている必要があります。