Нажмите на кнопку после перезагрузки страницы

У меня есть некоторые ссылки на странице, и когда пользователь нажимает на ссылку, страница перезагружается.

Все ссылки имеют некоторый ID и все имеют один и тот же класс.

Мне нужно нажать на какую-то другую ссылку после перезагрузки страницы, но только если пользователь нажимает на какую-то ссылку с определенным классом (не везде, как ссылка меню).

Как я могу сделать что-то подобное с помощью JS или jQuery?

2 ответа

  1. Это звучит так, как будто вы пытаетесь построить приложение одной страницы, т. е. приложение в основном выполняется JavaScript вместо отрисовки на стороне сервера. В этом случае страница перезагружается вы враг. Перезагрузка страницы в основном перезапуск вашей страницы , и в то время как вы можете сохранить состояние с помощью файлов cookie илиlocalStorage, это предоставит вам довольно плохой пользовательский опыт.

    В этом случае вы просто добавите обработчики событий к любым действиям, которые предпримет пользователь, и просто обработаете их на javascript без перезагрузки страницы с сервера. Если необходимо получить больше данных в ответ на действия пользователя, можно использовать AJAXдля извлечения этих данных с сервера.

    Если вам нужно использовать ссылки с URL-адресами (мне все еще непонятно, зачем это нужно), я бы рекомендовал использовать хэш-URL-адреса, такие как so'#some-action', которые не будут перезагружать страницу при нажатии. Затем вы можете прикрепить обработчик событий к ссылке или даже прослушивать хэш url для изменения с помощью hashchangeсобытия. Таким образом, вы можете узнать, какую ссылку пользователь нажал.

    Если вы не пытаетесь создать одностраничное приложение, вам потребуется добавить код на сервер для хранения необходимой информации на странице.

  2. Я сделал это.

    Итак, я создал функцию:

    /**
     * Click on delivery link after page reload
     *
     * @return {boolean} [loacalStorage is available]
     */
    $.fn.openDelivery = function(){
        if (localStorage) {
            var addedToCart = localStorage["addCart"];
            if (addedToCart) {
                setTimeout(function() {
                    $('#showRight').trigger('click');
                }, 1500);
                localStorage.removeItem("addCart");
            }
            $(this).click(function(e) {
                localStorage["addCart"] = true;
            });
    
            return true;
        }
    
        return false;
    };
    

    А затем вызвал эту функцию:

    $(document).ready(function () {
        // Trigger delivery click
        $('.class-of-my-link').openDelivery();
    });
    

    В моем случае страница перезагружается после того, как пользователь добавит какой-то товар в корзину. С помощью этой функции я нажимаю на ссылку (с задержкой 1,5 С), которая открывает корзину пользователя, показанную в правой части экрана.