一旦文档准备好,我有一个使用 AJAX 加载帖子的提要。因为元素在代码执行时还没有准备好,所以我不得不使用委托来绑定很多函数。
$(posts).delegate('.edit_comment_text','keyup',function(e){
return false;
if (e.keyCode == 13 && e.shiftKey == false) {
//Post the new comment and replace the textbox with a paragraph.
var message_area = $(this).parent('.comment_message');
var new_message = $(this).val();
var comment_id = $(this).closest('.group_comment').attr('data-comment');
var url = 'functions/edit_comment.php';
var array = {
'comment':comment_id,
'message':new_message
}
$.post(url, array, function(data){
console.log(data);
$(message_area).html("");
$(message_area).text(new_message);
});
}
})
这是我在事件中执行的代码。我一直试图让浏览器在用户按 Enter 时停止下拉一行,但此操作是在我的代码被触发之前执行的。为了证明这一点,我将“return false”放在了块的最顶部。在该示例中,当用户按 Enter 键时,我的任何代码都不会运行,但 textarea 仍然会删除一行。
是否与 JQuery 的委托有关,导致我的函数在默认事件之后被调用?他们在文档中提供了防止默认事件的示例,所以可能是版本错误或什么?
有人有想法么?
谢谢!