删除元素后的jQuery焦点

时间:2013-04-17 05:52:07

标签: javascript jquery html

如果按下删除键或退格键,我想删除一些令人满意的段落。我为此编写了以下脚本:

$(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的值。

1 个答案:

答案 0 :(得分: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()