Кнопка «Назад» не вызывает местоположение содержимого AJAX в Chrome - PullRequest
0 голосов
/ 28 июня 2018

Я динамически загружаю контент талантов на этой странице с помощью AJAX: www.icon.pha-group.com, который использует пагинацию для просмотра контента. Моя проблема в том, что в Google Chrome не запоминает страницу, на которой вы были. Так что, если я нахожусь на странице 2 контента, щелкните элемент, а затем вернитесь, он вернется к странице 1. Есть ли способ, которым я могу изменить этот код для решения проблемы? Вот функция AJAX:

        function get_posts($params) {

        $container = $('#container-async');
        $content   = $container.find('.content-ajax');
        $status    = $container.find('.status');

        $status.text('Fetching talent...');

        $.ajax({
                    //url: bobz.ajax_url,
                    url: "/wp-admin/admin-ajax.php",
                    data: {
                        action: 'do_filter_posts',
                    nonce: bobz.nonce,
                    params: $params
                    },
                    type: 'post',
                    dataType: 'json',
                    success: function(data, textStatus, XMLHttpRequest) {

                        if (data.status === 200) {
                            $content.html(data.content);
                        }
                        else if (data.status === 201) {
                            $content.html(data.message);    
                        }
                        else {
                            $status.html(data.message);
                        }

                        //all done so call cycle script
                        script_cycle();

                        // window.location.hash = $this.closest('span').find('.current');
                        // console.log(window.location.hash);
                        //angular.bootstrap(document, ['lightbox']);



                 },
                 error: function(MLHttpRequest, textStatus, errorThrown) {

                $status.html(textStatus);

                /*console.log(MLHttpRequest);
                console.log(textStatus);
                console.log(errorThrown);*/
                 },
            complete: function(data, textStatus) {

                msg = textStatus;

                if (textStatus === 'success') {
                    msg = data.responseJSON.found;
                }

                // $status.text('Posts found: ' + msg);
                $status.text('');

                /*console.log(data);
                console.log(textStatus);*/
            }
        });
    }

Обновление кода, вот нумерация страниц:

function vb_ajax_pager( $query = null, $paged = 1 ) {

if (!$query)
    return;

$paginate = paginate_links([
    'base'      => '%_%',
    'type'      => 'array',
    'total'     => $query->max_num_pages,
    'format'    => '#page=%#%',
    'current'   => max( 1, $paged ),
    'prev_text' => 'Prev',
    'next_text' => 'Next'
]);

if ($query->max_num_pages > 1) : ?>
    <ul class="pagination">
        <?php foreach ( $paginate as $page ) :?>
            <li><?php echo $page; ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif;

}

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы можете хранить / получать нужную информацию в / из переменной локального хранилища javascript. Таким образом, вы можете вспомнить постраничную страницу, на которой вы были.

0 голосов
/ 28 июня 2018

Это потому, что вы не меняете URL после нажатия на элемент.

$('.youritemclicked').click(function() {
   location.hash($(this).attr('id'));
});

Или вы можете просто обернуть свой предмет в anchor тег:

<a href="#item2">
<!-- Your item body -->
</a>

ВАЖНО

Убедитесь, что вы не установили preventDefault(), нажав на этот пункт

Затем вы можете вернуться назад и вперед в своем браузере, потому что теперь у вас есть история, сохраненная и для этих элементов.

UPDATE

if ($query->max_num_pages > 1) : ?>
    <ul class="pagination">
        <?php foreach ( $paginate as $page ) :?>
            <li><a href="#<?php echo $page->ID; ?>"><?php echo $page; ?></a></li>
        <?php endforeach; ?>
    </ul>
<?php endif;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...