Как сохранить предыдущий и следующий элемент массива в хранилище сессий в jQuery? - PullRequest
0 голосов
/ 07 мая 2019

Я создаю автоматическую связь между предыдущими и предыдущими страницами.На главной странице есть несколько групп ссылок, указывающих на эти подстраницы.Мне нужно настроить предыдущую / следующую навигацию в определенной группе в правильном порядке.Я не знаю ничего на базе, поэтому я должен сделать это с помощью jQuery.

Моя идея такова:

  1. Переместить каждую ссылку из определенной группы в массив и поместить массив в sessionStorage
  2. Сохранить ссылку, по которой щелкнулиthe sessionStorage
  3. Проверьте, есть ли совпадение, и найдите ссылки до и после ссылки, по которой щелкали
  4. Создание навигации на основе результатов

До сих пор все было хорошо,Теперь я застрял.Нажатие на массив и сохранение в sessionStorage работает хорошо, так же, как и сохранение нажатой ссылки.Но по какой-то причине я не могу заставить его найти предыдущую и следующую ссылку в массиве.Это мой код:

var root_url = window.location.protocol + "//" + window.location.host
var hrefs_tiles = new Array();

jQuery('.wp-tiles-grid').each(function(){
    var current_tiles = jQuery(this);
    current_tiles.on('click',function(){
        current_tiles.find('a').each(function(){
            var attr_href = jQuery(this).attr('href');
            hrefs_tiles.push(root_url + attr_href);
            sessionStorage.setItem("hrefs_tiles", hrefs_tiles);
        });
    });
});
jQuery('.wp-tiles-grid a').on('click',function(){
    var current_href = jQuery(this).attr('href');
    var current_link = root_url +current_href
    sessionStorage.setItem("link", current_link);
    hrefs_tiles.forEach(function(item){
        var link = sessionStorage.getItem("link");
        if (item == current_link){
            var next = hrefs_tiles[(jQuery.inArray(current_link, hrefs_tiles) + 1) % hrefs_tiles.length];
            var prev = hrefs_tiles[(jQuery.inArray(current_link, hrefs_tiles) - 1 + hrefs_tiles.length) % hrefs_tiles.length];
            sessionStorage.setItem("prev", prev);
            sessionStorage.setItem("next", next);
        };
    });
});

Буду очень признателен за вашу помощь!

...