我正在嘗試使用Javascript進行簡單的autotype。我的問題是,如果我從視圖(.cshtml)調用它,autotype是無法順序運行的。等待JavaScript函數在foreach cshtml裏面完成?
我CSHTML這樣的:
<script type="text/javascript" src="@Url.Content("/Scripts/autotype.js")"></script>
@foreach (var temp in @Model)
{
<script>
auto_type("ABCDEFG", 0)
</script>
}
<div id="divauto"></div>
,它的autotype.js:
function auto_type(wrt, i) {
wrt = wrt.split('');
var delay = 100;
while (i < wrt.length) {
setTimeout(function() {
$('#divauto').append(wrt.shift())
}, delay * i)
i++;
}
}
從這些代碼,輸出會像 「AAABBBCCCDDDEEEFFFGGG」 但我需要像輸出:「ABCDEFGABCDEFGABCDEFG 「
輸出是「ABCDEFG」,而不是「AAABBBCCC ...」。 – 2014-12-01 19:24:26
我在我的repro中得到這個'AAAAABBBBBCCCCCDDDDDEEEEE'。 – 2014-12-01 19:28:46
我真的懷疑,如果你需要使用Razor來輸出腳本,像這樣的循環。將腳本保留爲客戶端行爲幾乎總是更好,並將Razor用於服務器端行爲。您可以確定使用Razor爲您的客戶端代碼提供數據以執行操作,但試圖將這兩者混合起來會造成麻煩。 – 2014-12-01 22:57:05