jQuery .text()不会更新

use*_*047 2 html javascript jquery

我的问题是,当触发"keydown"事件时,textarea的文本不会更新当前在textarea中的内容,而是最初在textarea中的内容.查看帮助我描述问题的小提琴.单击单词test并尝试编辑出现的textarea.请注意,警报仍然只会导致"测试",而不是更改为"测试".

<script>
$('#content').click(function () {
    var content = $('#content').text();
    $('#content').html("<textarea id='text'>" + content + "</textarea>");
    $('textarea').width($(window).width()).height($(window).height());
    $("#content").unbind('click');
});

$("body").delegate("textarea", "keydown",function(e){
    myAjaxFunction($('textarea').text());
    alert($('textarea').text());
});

function myAjaxFunction(value) {
$.post("update.php?filename=" + filename, { content: value });
}
</script>
Run Code Online (Sandbox Code Playgroud)

Fel*_*lix 5

一些变化:

1)您需要使用on()而不是delegate()因为从jQuery 1.7开始,.delegate()已被该.on()方法取代

2)使用keyup而不是keydown事件.

3)使用val()来获取textarea的值

$("body").on("keyup", "textarea",function(e){
    alert($('textarea').val());
}); 
Run Code Online (Sandbox Code Playgroud)

更新小提琴