0

如果按下删除或退格键,我想删除一些内容可编辑的段落。我为此编写了以下脚本:

$(document).on('keyup', 'p[contenteditable="true"]', function(e) {
    if(e.which == 13) {
        e.preventDefault();
        $(this).after('<p contenteditable = "true">New Paragraph</p>');
        $(this).next('p').focus();
    } else if((e.which == 8 || e.which == 46) && $(this).text() == "") {
        e.preventDefault();
        $(this).remove();
        $(this).previous('p').focus();
    };
});

我想在删除后专注于上一段,但我不相信我能做到这一点,因为this不再存在。我也试过把focus之前的,remove但它似乎改变了this.

4

1 回答 1

3

尝试这样的事情:

$(document).on('keyup', 'p[contenteditable="true"]', function(e) {
    if(e.which == 13) {
        e.preventDefault();
        $(this).after('<p contenteditable = "true">New Paragraph</p>');
        $(this).next('p').focus();
    } else if((e.which == 8 || e.which == 46) && $(this).text() == "") {
        e.preventDefault();
        var prev = $(this).prev('p');
        $(this).remove();
        prev.focus();
    };
});

另外值得注意的.previous()是不是jQuery方法,我相信您正在寻找的方法是.prev()

于 2013-04-17T05:54:54.637 回答