Вопрос laravel: проблема с кнопкой ajax

Я использую ajax для laravel, при увеличении или уменьшении количества отображается «корзина успешно обновлена». Первый раз, когда я нажимаю кнопку вверх или вниз, как показано на рисунке ниже, не проблема. Сообщение отобразится, а затем исчезнет. Но когда я снова нажимаю кнопку вверх или вниз, сообщение также отображается, но больше не исчезает. Могу я узнать, как решить эту проблему?

Вопрос laravel: проблема с кнопкой ajax

Я поделюсь своим кодом прямо здесь ...

Вот код для файла контроллера: -

public function update(Request $request){
  $qty = $request->newQty;
  $rowId = $request->rowID;
  Cart::update($rowId,$qty);
  echo "Cart updated successfully!";
}

А вот и файл с лезвием: - Я также поместил ajax в файл лезвия:

     <script>
        $(document).ready(function(){
            $("#CartMsg").hide();
            @foreach($data as $pro)
            $("#upCart{{$pro->id}}").on('change keyup', function(){
                var newQty = $("#upCart{{$pro->id}}").val();
                var rowID = $("#rowID{{$pro->id}}").val();
                $.ajax({
                    url:'{{url('/cart/update')}}',
                    data:'rowID=' + rowID + '&newQty=' + newQty,
                    type:'get',
                    success:function(response){
                        $("#CartMsg").show();
                        console.info(response);
                        $("#CartMsg").html(response);
                    }
                });
            });
            @endforeach
        });
    </script>

и здесь div в файле лезвия

<div class = "alert alert-info" id = "CartMsg"></div>
<div class = "cart-qty"> <span>Qty: </span>
    <input type = "number" max = "10" min = "1"
     value = "{{$pro->qty}}" class = "qty-fill"
     id = "upCart{{$pro->id}}">
</div>

Чуть не забыл, я забываю, что здесь важна затухание нашей части.

<script>
    $(document).ready(function(){
        $('.alert-info').fadeIn().delay(5000).fadeOut();
    });
</script>

Где код, который вы используете, чтобы скрыть сообщение? Я вижу только один метод .hide() при загрузке документа и не вижу кода для постепенного исчезновения. Это вообще не должно работать.

skobaljic 07.11.2018 14:32

Привет, извините за ошибку, я уже сделал часть обновления ... проверьте.

lun7code 07.11.2018 15:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
141
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, проблема в том, что вы смешиваете функции show () и hide () с fadeIn () и fadeOut (), и вы используете $ (document) .ready () для обработки того, что может меняться несколько раз. В первый раз можно скрыть #CartMsg, но тогда вы должны выполнить fadeIn () - fadeOut () внутри раздела "success" вызова ajax, не показывая снова #CartMsg (fadeIn () выполнит эту работу).

$.ajax({
    url:'{{url('/cart/update')}}',
    data:'rowID=' + rowID + '&newQty=' + newQty,
    type:'get',
    success:function(response){
        //$("#CartMsg").show();                                  // Delete this
        console.info(response);
        $("#CartMsg").html(response);
        $('.alert-info').fadeIn().delay(5000).fadeOut();         // And add this (using the class or #CartMsg, depends on your html)
    }
});

Другие вопросы по теме