#jquery
Вопрос:
Язык проекта: Laravel
Короче говоря, у меня есть несколько div с одинаковыми классами, содержащими новости, и каждый div имеет свой собственный атрибут «news-id», который равен идентификатору новостей БД. У меня есть запрос AJAX, который запускается при нажатии кнопки (Удалить), и все работает нормально, ожидайте условия успеха ответа, когда я ввел сценарий, который отключает div, а затем удаляет его, но похоже, что сценарий не может сфокусировать правильный div для выполнения сценария отключения. Вот что у меня есть:
<div class="news_card" news-id="{ID}">
**(SOME CONTENT....)**
<a href="javascript:" class="btn_delete del_news"><i class="icon-trash"></i><span>Delete</span></a>
</div>
$(".del_news").on('click', function(event) {
$(this).css("pointer-events","none");
var ld = $(this).closest(".news_card").attr("news-id");
$.ajax({
type: 'GET',
url: '{{ url("/news/delete") }}',
data: {id: ld},
success: function(response) {
if(response.status == 1) {
$(this).closest(".news_card").fadeOut(1200, function() { $(this).closest(".news_card").remove(); });
alert($(this).closest('.news_card').attr("news-id"));
$(this).css("pointer-events","auto");
} else {
$(this).css("pointer-events","auto");
}
}, error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
$(this).css("pointer-events","auto");
}
});
});
Скрипт успешно удаляется, но div не исчезает. Есть идеи?
Комментарии:
1. В вашем событии del_news нажмите «Событие», создайте переменную «нравится
$this = $(this)
«, а затем в вашей функции успеха замените$(this)
на$this
2. Это сработало! Но не могли бы вы объяснить мне, почему это не работало с текущим кодом?
3. Потому
this
что внутри ваш успех не относится к вашему элементу, на который вы нажали4. Понял! Большое спасибо.