Вот ситуация: я пишу простое AJAX-приложение, которое выполняет функции CRUD. Когда пользователь дважды щелкает по определенному элементу, элемент превращается в текстовое поле, чтобы они могли редактировать его внутри строки. Когда текстовое поле теряет фокус (код для которого приведен ниже), значение текстового поля переносится в сценарий PHP, который обновляет базу данных.
Все отлично, кроме одной вещи. Когда я создаю новую запись, которая появляется в верхней части списка с помощью AJAX, я не могу редактировать эту запись без обновления страницы. Я имею в виду, что редактирование выглядит как будто оно было зафиксировано, но при обновлении оно возвращается к оригиналу. После обновления проблем нет.
Чтобы свести его к минимуму: Когда я пытаюсь запустить следующий код на вновь созданных строках в моей таблице (как в базе данных, так и на странице), редактирование отображается в быть сделанным на странице, но никогда не попадет в базу данных.
//Make changes on FOCUSOUT
$('#editable').live('focusout', function(){
var parentListItem = $(this).parents('li');
var theText = $(this).val();
var parentListItemID = parentListItem.parents('ul').attr('id');
$(this).remove();
parentListItem.html(theText);
parentListItem.removeClass('beingEdited');
$.post("databasefuncs.php?func=edit", { postedMessage: parentListItemID, fullTextContent: theText },
function(result){
if(result == 1) {
parentListItem.parents('ul').animate({ backgroundColor: 'blue' }, 500).animate({ backgroundColor: '#eeeeee' }, 500);
} else {
alert(result);
}
});
});