2012-07-10 56 views
1

在我的代碼中,它就像count循環和countin變量..在上一個循環中,每件事情都可以,它會返回正確的值,但它不能返回過去的值。爲什麼jQuery沒有將正確的值傳遞給HTML?

是什麼問題?

這是我的代碼:

@{ 
    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("#[email protected]").css({ "background-position": objin[@count] }); 

     if (obj[@count] == 100) { 
      jq3("#[email protected]").css({ "background-image": "none" }); 
      jq3("#[email protected]").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="[email protected]"> 
</div> 
<div class="bar-pro" id="[email protected]"></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數組在循環中。他們應該走出循環。

+0

我發現問題.. 因爲obj和objin數組在循環中。他們應該沒有迴路 – 2012-07-10 11:54:06

回答

0

這裏有一個問題:

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

你是比較這個值的數字。由於您將「px 0」附加到此值,它將始終是一個字符串。這種比較總是會失敗。

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

我修正它.. obj [1] == 100我現在比較它與一個數字。但不起作用。 – 2012-07-10 11:44:13

+0

根據你的代碼,它實際上會是「-100px 0」,其中!= 100 – 2012-07-10 11:55:40

+0

我修復了@Diodeus。我的數組進入循環。我把它們擺脫了循環,現在它正常工作。 – 2012-07-10 12:00:54

相關問題