Удаление элемента
Здравствуйте форумчане! Пишу небольшой чат для сайта:
В теле страницы у меня есть <div id="chat_area"></div> При добавлении сообщения вызывается функция Load(), которая принимает имя и сообщение и делает следующее: $js = 'var chat = $("#chat_area");'; // получаем указатель на элемент, потом проходимся по базе сообщений, находим новые, загоняем их в массив и формируем код дальше foreach ( $messages as $value ) { $id = $value['id']; $button = str_replace("recordId",$id,"<input type=image src=images/del.png onclick=Delete('recordId') >"); $js .= 'chat.append("<span>' . $value['name'] . '» ' . $value['text'].$button.'</span>");'; } //после передачи обратно клиенту $js, он выполнит ее eval($js) По щелчку на кнопку рядом с сообщением вызывается обработчик Delete(Id), который говорит серверу, какую запись из базы удалить... Теперь собственно вопрос: из базы-то я удаляю, а как удалить эту запись со страницы? Нажал на кнопку - на глазах пользователя сообщение исчезло. Заранее спасибо! |
$(node).remove(); |
Не подскажите, как это осуществить на моем конкретном примере?
|
Какой элемент конкретно надо удалить? Или покажите пример исходного кода (HTML) Вашего чата.
|
На странице, где отображаются сообщения
<div id="chat_area"></div> Вот смотрите: формирую javascript код на стороне сервера при добавлении нового сообщения $js = 'var chat = $("#chat_area");'; $id = $value['id']; $button = str_replace("recordId",$id,"<input type=image src=images/del.png onclick=Delete('recordId') >"); // это кнопка, в обработчик которой передается id сообщения в базе данных. $js .= 'chat.append("<span>' . $value['name'] . '» ' . $value['text'].$button.'</span>");'; // формируется непосредственно все сообщение: имя, текст, кнопка. echo $js; //отправляю На стороне клиента делаю eval($js); Когда человек щелкает по кнопке (возле каждого сообщения, как уже понятно, есть такая кнопочка), вызывается обработчик клика Delete(Id), назначенный для каждой кнопки(смотрите выше). Вот даже его код function Delete(Id) { $.post("ajax.php", { act: "delete", id: Id }, Load ); } Сервер принимает, смотрит, что $_POST['act'] == "delete" и удаляет с базы данных сообщение по его id. Это все хорошо, но пользователь-то до обновления страницы ничего не заметит(кликнул по кнопке, где-то что-то произошло, видимого визуального эффекта ноль для него). Нужно, чтобы по клику удалились: именно нужное сообщение плюс кнопка(короче, чтобы строка с сообщением исчезла). |
$('#chat_area span:last').remove(); |
Задал каждой кнопке уникальный id, который и заносится в element...
Сперва протестировал код $(element).remove(); Как и ожидалось, удалилась кнопка, по которой был клик... Потом попробовал $("#chat_area").remove($(element).parents('span').first());дабы удалить все сообщение, но такой код вообще никаких действий не производит... |
exec, спасибо большое за помощь! Проблему решил, повесил id на каждый span
|
Часовой пояс GMT +3, время: 14:53. |