为什么jQuery没有将正确的值传递给HTML?

时间:2012-07-10 11:33:45

标签: jquery asp.net-mvc asp.net-mvc-3

在我的代码中,它就像是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>

这只是其中一个循环。如果你想我可以提供完整的代码和结果。 注意:最后一个值是正确的,它应用于css但CSS的过去值不起作用。

问题是什么?

注意:我发现了问题。因为obj和objin数组是循环的。他们应该失控。

1 个答案:

答案 0 :(得分:0)

这里有一个问题:

 if (objin[1] == 100) ...

您正在将此值与数字进行比较。由于您将“px 0”附加到此值,因此它将始终为字符串。这种比较总是失败。

objin[1] = "-" + obj[1] + "px 0";