evt.preventDefault();不适用于下拉列表?

时间:2015-08-11 13:57:41

标签: javascript jquery liquid

我有以下代码,点击切换列表即可打开/关闭。这工作正常,除非您单击列表中的链接并且页面刷新时列表不会保持打开状态,但它会关闭。

我实际上是想让它在Shopify主题中工作,所以我很难证明发生了什么。我认为可能是evt.preventDefault();在谷歌搜索后无法正常工作,但我对此并不满意,所以不完全确定。

我试图让jsFiddle努力证明什么是黑客,但无法复制问题。

如果有人有任何可能出错的建议我会很感激。

JS

timber.sidebarSublist = function () {
  timber.cache.$sidebarSublistTrigger.on('click', function(evt) {
  var $el = $(this);

  evt.preventDefault();
  $el.toggleClass('is-active').next('.sidebar__sublist').slideToggle(200);
  });
};

液体

{% assign child_list_handle = link.title | handleize %}
{% if linklists[link.handle] == empty %}
  <li>
    <a href="{{ link.url }}" class="{% if link.url == active_url %} is-active{% endif %}">{{ link.title }}</a>
  </li>
{% else %}
  <li aria-haspopup="true">
    <a href="{{ link.url }}" class="sidebar__sublist-trigger sidebar-sublist__has-dropdown {% unless template == 'index' %}{% if link.url == active_url %} is-active{% endif %}{% endunless %}">
      {{ link.title }}
      <span class="icon-fallback-text sidebar__sublist-expand">
        <span class="icon icon-plus" aria-hidden="true"></span>
        <span class="fallback-text">+</span>
      </span>
      <span class="icon-fallback-text sidebar__sublist-contract">
        <span class="icon icon-minus" aria-hidden="true"></span>
        <span class="fallback-text">-</span>
      </span>
    </a>
    <ul class="sidebar__sublist sidebar-sublist__content">
      {% for childlink in linklists[child_list_handle].links %}
          <li>
            <a href="{{ childlink.url }}">
              {{ childlink.title | escape }}</a>
          </li>
      {% endfor %}
    </ul>
  </li>
{% endif %}

0 个答案:

没有答案