我正在實現一個相當簡單的倒數小部件,其中的數字一旦發生變化就會下降。但是,一旦數字向下移動,它就不會改變爲下一個值。打印整個對象顯示dom是相同的,但打印出object.html()會顯示已更新的值。這裏的代碼被簡化爲基本案例。.html()在回調函數中調用時不更新dom?
<div>
<p class="countdown">
<span id="days"></span>d
<span id="hours"></span>h
<span id="minutes"></span>m
<span id="seconds">10</span>s
</p>
</div>
使用JavaScript
$("#seconds")
.css('position','relative')
.animate(
{
opacity: 'hide',
top: 200
},
'slow',
function(){
//$(this).css({'opacity': 'show'});
$(this).html(9);
console.log($(this));
console.log($(this).html());
;
});
相當簡單吧?它應該下降10(它所做的)並在動畫完成時將其替換爲9。然而,在動畫完成後無任何顯示控制檯輸出以下:
console.log($(this)) = <span id="seconds" style="position: relative; opacity: 1; top: 0px; ">10</span>
console.log($(this).html()) = 9
不知道爲什麼在html()值將與DOM仍保持不受影響改變。有任何想法嗎?謝謝。
您是否嘗試過添加引號? '$(本)。html的( 「9」);'。另外,第二個最後一行還有一個額外的分號嗎? –
@jang,'.html()'函數不需要引用字符串 –
K,不知道。謝謝(你的)信息。 –