2016-11-01 5 views
0

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

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

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

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

+0

Можете ли вы предоставить некоторые из своих HTML и описать поток? Я изо всех сил пытаюсь понять, что вы пытаетесь сделать. – James

+0

Получите класс элемента, который они нажали, а затем создайте условное утверждение, которое что-то делает, если класс равен тому, что вы ищете. – user1289451

ответ

0

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

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

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

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

0

Я сделал это.

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

/** 
* 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 с), которая открывает корзину пользователя, которая отображается в правой части экрана.

+0

Отлично, я рад, что это сработало для вас. Если вы считаете, что мой ответ был полезен, вы могли бы принять его. В противном случае, если вы не считаете, что он содержит как можно больше информации, вы можете принять свой ответ. – Mobius