2014-01-07 34 views
4

<textarea>的值甚至發生更改之前,正在執行將文本添加到<textarea>中時要運行的keydown處理程序。我想在添加文本後運行我的處理程序。在<textarea>的值已更改後運行keydown事件處理程序

這是我的JSFiddle

我不想通過setInterval()或使用鍵控監聽器來延遲功能。

+0

鍵控有什麼問題? – SomeKittens

+0

我發佈了我正在處理的代碼的簡化版本。我不能在實際代碼中使用keyup,原因是我不想詳細說明。 – cinderblock

回答

3

它有點哈克,但如果你必須:Live demo (click).

$("textarea").keydown(function(){ 
    setTimeout(function() { 
     console.log($('textarea').val()); 
    },0); 
}); 

textarea的值將不會被設置直到keydown事件觸發後,所以keyup是優選的。如果你想使用​​,我認爲唯一的解決方法是用0時間setTimeout()放棄調用堆棧,以便在註冊該值後其餘代碼將被觸發。

+0

這就夠了,但我會等待,看看在接受之前是否發佈了更乾淨的解決方案。 – cinderblock

+0

@cinderblock我不認爲這是可以做到的,但我很容易被錯誤:) – m59

相關問題