Загрузка содержимого страницы в Div с Ajax не работает внутри модального окна - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть страница, на которой отображаются члены команды (каждый из которых имеет пользовательский тип сообщения), и, когда на члена команды нажимают, содержимое открывается в модальном окне с именем # single-post-container. Я делаю это, прикрепляя событие onclick к каждой ссылке, которая имеет класс «.post-link». Это работает нормально, но внутри модального окна у меня также есть ссылки, позволяющие перемещаться между членами, не закрывая окно. Я отображаю их, используя <?php previous_post_link(); ?> (то же самое для следующего поста), и я убедился, что выводимые ссылки также имеют класс .post-link, используя фильтр из functions.php. Проблема в том, что эти ссылки не всегда работают, иногда содержимое страницы не загружается внутри модальных окон, и я подозреваю, что в моем apropach что-то не так, даже если это работает большую часть времени.

Вот соответствующий код:

Модальный оконный div, который изначально скрыт:

<div id="single-post-container" class="hidden"></div>

Ссылки, где jQuery будет прикреплять событие "onclick":

<h1><a class="post-link" rel="<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>

Скрипт ajax.js, который я ставлю в очередь после jQuery:

jQuery(document).ready(function ($) {

    $.ajaxSetup({cache:false});
    $(".post-link").click(function(){
        $("#single-post-container").show();
        var post_link = $(this).attr("href");

        $("#single-post-container").html("content loading");
        $("#single-post-container").load(post_link);
    return false;
    });

    $("#close").click(function(){
        $("#single-post-container").hide();
    });
});

И затем в шаблоне для каждого отдельного поста, называемом single-team.php, я также вызываю один и тот же скрипт в конце, поскольку я знаю, что сгенерированные в нем ссылки не являются частью DOM в начале, поэтому слушатель событий невозможно прикрепить, пока страница не будет загружена в модальное окно (хотя я подозреваю, что именно здесь мой подход может быть неправильным):

<script src="<?php echo get_template_directory_uri(); ?>/js/ajax.js"></script>
...