This is the function
function deleteItem(id) {
$.post("_asyncpage.php",
{id:id},
function (result) {
if (result == true) {
$('#'+id).remove();
}
}, "json");
}
So, to explain, the function receive an id, send to a page that execute random stuff on a db and return true/false.
The function inside check for result that can be true/false as said before. Если true, продолжайте удалять элемент dom, который соответствует переданному идентификатору.
БД обновлена правильно, но .remove () не будет работать ... кто-то знает почему? : (
Ниже приведен пример структуры html. Таблица внутри TD должна быть удалена.
<td width="120" valign="top" id="13_02">
<table cellspacing="0" cellpadding="0" class="tableProg" id="1">
<tbody>
<tr>
<td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
</tr>
<tr>
<td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
<td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
<td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
</tr>
</tbody>
</table>
</td>
Обновление: Судя по предоставленной вами дополнительной информации, проблема может быть связана с вашими идентификаторами. Недопустимо, чтобы идентификатор начинался с цифры. Это может вызвать проблемы.
Если ваш id
, который вы передаете функции, уже имеет в начале #
, то вам не нужно его конкатенировать.
Также, если ответ, который вы получаете, представляет собой строку, вам следует сравнить результат со строкой 'true'
.
if (result == 'true') {...
Я бы проверил ваш результат
. Вы возвращаете true
как число (1)? или это строка при получении?
Поскольку ваш тип данных - json
, значение result
должно быть json-строкой
или уже проанализированной объект
, поэтому я держу пари, что этот
if (result == true) {
никогда не пройдет.
Выполняется ли $('#'+id).remove();
?
Что произойдет, если вы выполните alert($(' #'+id).length)
? Вы должны ожидать ответ > 0
Кроме того, каков тип результата
? Попробуйте alert(typeof(result));
Это поможет вам определить правильное сравнение для вашей if
проверки
Просто чтобы дать больше информации, это часть структуры, которую необходимо удалить с помощью jquery.
<td width="120" valign="top" id="13_02">
<table cellspacing="0" cellpadding="0" class="tableProg" id="1">
<tbody>
<tr>
<td colspan="3"><h4 style="margin: 0pt;">Title</h4></td>
</tr>
<tr>
<td colspan="3">h. 13:35</td></tr><tr><td width="74"><span style="font-weight: bold; color: rgb(0, 102, 204);">Su</span>: TV</td>
<td width="22"><a href="javascript:openEditItem('2010/08/24','1')"><img src="static/images/edit.gif"></a></td>
<td width="22"><a href="javascript:deleteItem('1')"><img src="static/images/delete.gif"></a></td>
</tr>
</tbody>
</table>
</td>