使用jQuery更新内部文本

时间:2016-03-01 10:11:34

标签: javascript jquery live-update

我有一个我现在正在工作的项目。在这个项目中我想实时更新一些按钮文本。我在项目中使用了contenteditable="true"。我有2个解决方案。第一个工作正常,但我没有得到我想要的第二个有问题。在第二个我希望当用户长按一个键时,文本将显示而不释放键 在第一个中我使用了keyup事件,在第二个中我使用了keydown事件。我想在keyup事件发生时按钮'内部文本将更改为新文本。

这是我的第一个代码(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.

2 个答案:

答案 0 :(得分:0)

用户输入的元素的内容在keydown事件发生时必然已更新。这就是为什么它不会更新。

如果您使用keyup,则您不会遇到此问题。

答案 1 :(得分:0)

尝试input事件

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