1

一旦文档准备好,我有一个使用 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 的委托有关,导致我的函数在默认事件之后被调用?他们在文档中提供了防止默认事件的示例,所以可能是版本错误或什么?

有人有想法么?

谢谢!

4

0 回答 0