У меня есть страница, на которой отображаются члены команды (каждый из которых имеет пользовательский тип сообщения), и, когда на члена команды нажимают, содержимое открывается в модальном окне с именем # 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>