我正在使用jQuery來改變頁面元素,並且代碼似乎正在運行(成功),但頁面實際上並沒有立即更新。在Chrome中一切都很穩定,但IE9很奇怪。IE9並不反映頁面javascript的變化
的JavaScript:
$(document).ready(function() {
$('body').on('change', '.Hours', function() {
var hoursElement = this;
this.value = Math.ceil(this.value * 4)/4;
$.post("/Log/UpdateWorkItemHours", {
//valid arguments
}, function (hours) {
hoursElement.value = hours;
updateSum();
});
});
});
function updateSum() {
var sum = 0;
$('.Hours').each(function() {
sum += parseFloat($(this).val());
});
$('#sum').text("Total Hours: " + sum);
alert(sum);
}
HTML:
<input type="text" class="numeric Hours" value="4" />
<input type="text" class="numeric Hours" value="4" />
<input type="text" class="numeric Hours" value="21" />
<span class="numeric" id="sum">Total Hours: 0</span>
我的警報之後發生(代碼)#sum的內容應改變,並顯示正確的數量,但是,頁面不會更新,直到我在頁面上隨機點擊或使用標籤多次更改焦點。此外,該警報僅用於調試;這是在我添加到那裏之前發生的。代碼
訂單: 1.找出總和 2.更新頁面 3.一個警報彈出
序執行: 1.找出總和 2.警報popup 3.等待,直到用戶點擊隨機物品 4.更新頁面
任何想法?
編輯:添加HTML和調用該函數的事件。
時,這種功能被調用?它與之交互的頁面的HTML是什麼? – 2012-04-18 21:31:56
它是否在沒有警報的情況下工作? IE真的不喜歡做警報 – 2012-04-18 21:33:06
@thantos從問題:「另外,警報只是爲了調試;這發生在我把它添加到那裏之前。」 – 2012-04-18 21:33:27