2016-03-01 38 views
0

我有一個項目,我現在正在工作。在這個項目中我想要更新一些按鈕文字。我在我的項目中使用了contenteditable="true"。我有2個解決方案。第一個工作正常,但我沒有得到我想要的第二個問題。在第二種情況下,當用戶長時間按下某個鍵時,文本將顯示而不釋放鍵。
在第一個我使用keyup事件,並在第二個我使用​​事件。我想要在事件發生時按鈕的內部文本將更改爲新文本。使用jQuery更新內部文本

這是我的第一批代碼(KEYUP):

$('[contenteditable]').on('keyup', function() { 
    $(this).closest('.code').prev().find('a').html($(this).html()); 
}) 

jsfiddle

這裏是我的第二者的代碼(的keydown):

$('[contenteditable]').on('keydown', function() { 
    $(this).closest('.code').prev().find('a').html($(this).html()); 
}) 

jsfiddle.

+1

這是由於在每個關鍵事件引發的新聞點。你不能改變它。但是,如果'keyup'正在按照您的要求工作,那麼問題是什麼? –

+0

我不確定你真的在找什麼。但你也可以嘗試'input'事件。 – RRK

+0

這兩個小提琴在Chrome中都能正常工作。但同意羅裏,這是由於關鍵事件。而不是倒下,爲什麼不使用或keychange? –

回答

0

嘗試input事件

$('[contenteditable]').on('input', function() { 
    $(this).closest('.code').prev().find('a').html($(this).html()); 
}) 
+1

感謝@madalin ivascu的幫助。有效! –

0

用戶鍵入的元素的含量不一定會在​​事件發生時更新。這就是爲什麼它不會更新。

如果你使用keyup,你不會有這個問題。