Я понимаю, почему это происходит, но я не понимаю, как это исправить.
Разметка HTML:
<tr>
<th>Attachment</th>
<td>
<ul>{% for attachment in lineup.attachments %} {% if lineup.obsolete %}
<li>{{ attachment.name}}</li>{% else %}
<!-- this will show just the last file -->{# set attachment = lineup.attachments|last #}
<li><a href='http://files.example.com/{{ attachment.file_url }}' id='{{ attachment.id }}'>{{ attachment.name }}</a>
<!-- remove attachment link -->{% if perm.remove_files %}
<input type='hidden' class='id' value='{{ attachment.id }}' /><a class='remove_file' href='javascript:void(0)' style="margin-left: 20px;">Remove</a>{% endif %}</li>{% endif %} {% endfor %}</ul>
</td>
</tr>
jQuery delete:
$(document).ready(function(){
$('.remove_file').click(function(){
$this = $(this);
$id = $this.parent().find('.id').val();
if(confirm('Are you sure you want to delete this file?')){
$.get('phplib/remove_lineup_attachment.php',{ id: $id }, function(){
$this.parent().parent().remove();
});
}
});
});
Поэтому он удаляет нужное вложение из базы данных, которую я хочу удалить. Проблема в том, что если у меня есть 5 вложений, показывающих, когда я нажимаю delete на вложении #5
, все они исчезают, а затем, когда я обновляю страницу, все они возвращаются за исключением #5
который был тем, который я удалил.
Как выглядит мой раздел вложений: http://i.imgur.com/wZSlkWU.png
Предполагая, что вы хотите удалить <li>
, а не <ul>
(это то, что вы в настоящее время нацеливаете с использованием .parent().parent()
), для вас должно работать следующее:
$this.parent().remove();
$this.parent().remove();
вместо$this.parent().parent().remove();
работа для тебя? Трудно сказать, основываясь на предоставленном вами HTML. Пожалуйста, опубликуйте предоставленный HTML.