【问题标题】:Generate second menu for tag in Jekyll在 Jekyll 中为标签生成第二个菜单
【发布时间】:2015-04-20 03:18:02
【问题描述】:

我已经为类别生成了我的第一个菜单。

<ul id="category__ul">
  <li id="pl__all" class="category__li category-btn active">All Artical</li>
  {% for category in site.categories %} 
    <li id="{{ category[0] }}" class="category__li category-btn">{{ category[0] }}</li>
  {% endfor %}
</ul>

然后我为标签创建第二个菜单。

<ul id="tag__ul">
  {% for tag in site.tags %}
    <li id="{{tag[0]}}" class="tag__li tag-btn {{post.category}} tag__all">{{ tag[0] }}</li>
  {% endfor %}

</ul>

我想在第一个菜单和第二个菜单之间建立一个链接。

var clickHandler = function(id) {return function() {
$(this).addClass('active').siblings().removeClass('active');
$('.tag__all').hide();
$('.' + id).delay(50).fadeIn(350); }};

$('#category__ul li').each(function(index){$('#' + $(this).attr('id')).on('click', clickHandler($(this).attr('id')));});

当我点击第一个菜单上的 category[0] 时,具有 category[0] 的第二个菜单将显示在第二个菜单上。

但总是失败,因为我在标签的循环中找不到类别

  {% for tag in site.tags %}
  <li id="{{tag[0]}}" class="tag__li tag-btn {{post.category}} tag__all">{{ tag[0] }}</li>
  {% endfor %}

如何在 {{post.category}} 获取类别?怎么改?

【问题讨论】:

    标签: css menu tags jekyll categories


    【解决方案1】:

    类别使用起来有点棘手。

    如果您在帖子或页面(在默认配置或前面的内容中)明确设置 类别,Jekyll 还将填充 类别数组。然后您将看到 post.category = "MyCategory"post.catagories = ["mycategory"] 请注意它是小写的。

    相反,如果您设置 categories(在默认配置或前面的内容中),Jekyll 将不会填充 post.category 变量。

    因此,为了确保获得帖子的类别,您必须使用post.categories 变量而不是post.category

    然后你可以像这样设置你的类:

    {% for tag in site.tags %}
      <li id="{{tag[0]}}" class="tag__li tag-btn 
       {% if post.categories %}{{ post.categories | join:" " }}{% endif %}
       tag__all">{{ tag[0] }}</li>
    {% endfor %}
    

    注意:换行是为了演示

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2011-04-28
      • 2023-03-24
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多