У меня есть привязка, и я прикрепил к ней обратный вызов onClick, поэтому, когда он щелкает, запускается запрос AJAX, который вызывает представление, удаляющее изображение из базы данных. Он также должен также полностью удалить <div class="image-preview">
, однако по какой-то причине этого не происходит.
Когда я тестировал код удаления div в JSFiddle , он работает. Изображение успешно удаляется из базы данных, и в этом процессе участвует delete_view. Я также попытался console.log
изнутри обратного вызова успеха, и я вижу сообщение отладки. console.log($(this).parents('.image-preview'));
возвращает Object { length: 0, prevObject: Object(1) }
, поэтому я думаю, что селектор не работает.
В чем может быть причина?
HTML:
<div id="information">
<div class="image-previews">
<div class="image-preview">
<img src="/media/tmp/None/IMG_20190507_144128.jpg" width="80" height="54">
<p><a id="115" class="delete-temp-image-link">delete</a></p>
<label><input type="radio" name="main" value="IMG_20190507_144128.jpg">main</label>
</div>
</div>
<div id="div0">
<div>Name: IMG_20190507_144128.jpg</div>
<div>Size: 3.03MB</div>
<div>Type: image/jpeg</div>
<div class="progressNumber">100%</div>
</div>
</div>
jQuery:
var $deleteClicked = function(event) {
var url = Urls.deleteTempImage(event.target.id);
$.ajax({
url: url,
data: {
'id': event.target.id
},
success: function (data) {
console.log('spam');
$(this).parents('.image-preview').remove();
}
});
}
$(document).on('click', '.delete-temp-image-link', $deleteClicked);
просмотр:
def delete_view(request, id):
img = get_object_or_404(TemporaryImage, id=id)
img.delete()
return HttpResponse('successfull')