0

我目前正在使用 Kirby CMS 构建网站,并使用 URL 中的参数来过滤我的文章。同时,我实现了一个非常基本的 css 切换器,它使我能够在列表和图库视图之间切换而无需任何重新加载(我假设)。但是当我在画廊视图中(仅在使用切换器时加载 css)并且 url 更改以传递过滤器的参数时,站点将恢复为初始 css(列表视图)。我怎样才能防止这种情况发生?

我不起眼的 CSS 切换器

function list() {
  var theme = document.getElementById('css');
  theme.href = "/assets/css/templates/works.css";
}

function gallery() {
  var theme = document.getElementById('css');
  theme.href = "/assets/css/templates/works-gallery.css";
}

筛选

<filter class="filter">
  <a href="<?= $page->url() ?>?filter=">All</a>
  <?php foreach ($filters as $filter): ?>
  <a href="?filter=<?= $filter ?>"><?= $filter ?></a>
  <?php endforeach ?>
</filter>

相应的页面控制器

return function ($page) {

  $filterBy   = get('filter');
  $unfiltered = $page->children()->listed();
  $works      = $unfiltered
  ->when($filterBy, function($filterBy) {
    return $this->filterBy('category', $filterBy);
  });
  $filters    = $unfiltered->pluck('category', null, true);

  return [
    'filterBy'    => $filterBy,
    'unfiltered'  => $unfiltered,
    'works'       => $works,
    'filters'     => $filters
  ];

};
4

0 回答 0