При успешном обратном вызове я бы использовал функцию jQuery .parents()
.
В контексте функции обработчика события щелчка $(this)
представляет «закрывающий элемент уведомления».
Вам необходимоудалите <div>
с классом notification
.
Так что я бы сделал что-то вроде $(this).parents('.notification').remove()
.
Я не уверен, что вы пытаетесь достичь с этим:
$('#messageboxcon').load(document.URL + ' #messageboxcon');
Он загрузит всю веб-страницу в messageboxcon <div>
, что не является тем, чего вы хотите достичь.
Если вы хотите обновить содержимое, выполните вызов AJAX, получая только HTML-код дляУведомления.
Просто создайте страницу (notifications.php) на стороне сервера, которая будет делать то, что вы делаете изначально:
@php
$usersid = Auth::id();
$usersalert = DB::table('notifications')->where('userid', $usersid)->orderBy('created_at', 'desc')->get();
@endphp
@if(count($usersalert) > 0)
@foreach ($usersalert as $item)
<div class="notification">
<h2 class="notiftitle">{{$item->type}}</h2>
<h3>{{$item->message}}</h3>
<a class="removenotif" data-id="{{$item->id}}" data-token="{{ csrf_token() }}"><i class="crossnotif fas fa-times fa-sm"></i></a>
</div>
@endforeach
@endif
Затем при успешном обратном вызове вы удаляете уведомление, которое пользователь хочетудалить для немедленной обратной связи.А затем сделайте AJAX-вызов, чтобы обновить уведомления примерно так:
$('#notificationcontainer').load('notifications.php')