Я создаю форму, которая отлично работает, и отправляю результаты на сервер с помощью AJAX.Чтобы улучшить взаимодействие с пользователем, я добавил спиннер, который должен отображаться, когда пользователь запускает событие нажатия кнопки в форме, и немедленно удаляет счетчик, если в запросе AJAX есть успех. Я пытаюсь добавить или удалитьдинамический класс с использованием CSS, который не работает
Layout
<div class="container PAY">
<div class="card-deck payment">
<div class="card">
<img class="card-img-top payment" src="{{asset('assets/images-new/mpesa.svg')}}" alt="Card image cap">
<div class="card-body">
<h5 class="card-title payment"><a href="#" id="mpesa" class="mpesa">Make Payment</a></h5>
</div>
</div>
<div class="modal" id="modal"><!-- Place at bottom of page --></div>
</div>
CSS
.modal {
display: none;
margin-top: 10%;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 400px;
width: 100%;
background: rgba( 255, 255, 255, .8 )
url('../images/ajax-loader-2.gif')
50% 50%
no-repeat;
}
/*Make sure the modal class is hidden by default and we control the style using Js*/
.PAY.loading .modal {
display:none;
}
AJAX-вызовдобавить или удалить кнопку
<script type="text/javascript">
//Trigger button
$('.mpesa').on('click', function () {
//Adds Class to the page when it loads
ajaxStart: function() { #PAY.addClass("loading"); },
$.ajax({
//Contains controller of payment
type: 'POST',
url: 'paymentFinal',
data: JSON.stringify(type),
contentType: 'application/json',
dataType: "json",
success: function success(response) {
console.log(response);
//Removes class when the page loads
ajaxStart: function() { #PAY.removeClass("loading");}
},
error: function error(data) {
console.log(data);
}
});
});
</script>