2013-04-17 2 views
0

У меня есть некоторые допустимые абзацы, которые я хотел бы удалить, если нажата клавиша удаления или возврата. Я написал следующий скрипт для этого:jQuery фокус после удаления элемента

$(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.

+2

Название метода '' prev' не previous'. – undefined

ответ

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()

+0

Спасибо, что работает. –

Смежные вопросы