在没有锚标记的情况下使用 (this)

Using (this) without the anchor tag

目前有一个结构如下的大型菜单:

<ul>
  <li>
    <a class="level-top">Link 1</a>
    <ul class="subnav">Subnav</ul>
  </li>
  <li>
    <a class="level-top">Link 2</a>
    <ul class="subnav">
      <li>
        <a>Link 1 Level 2</a>
        <ul class="sub-subnav"></ul>
      </li>
    </ul>
  </li>
</ul>

选择link 1时,我希望ul.subnav显示。目前我使用的代码是:

jQuery('.mobile-nav li a.level-top').click(function () {
  togglePanel(jQuery(this).find('ul.subnav'));
});

如果我从上面的 jquery 代码中删除 a.level-top,第一级(子导航)会正确打开。但是,因为我要将点击事件附加到 li 元素,所以我无法将手风琴切换到更深的导航中,因为这些元素嵌套在 li 元素中。

我需要将点击功能附加到定位标签 (a.level-top),但是 (this) 找不到要打开的正确子菜单。

有什么方法可以使用 this - 锚标签?

谢谢

使用.next(),而不是.find()

jQuery('.mobile-nav li a.level-top').click(function () {
  togglePanel(jQuery(this).next('ul.subnav'));
});

原因是,ul.subnav<a> 的兄弟姐妹,而不是 <a> 的 child。 .find() 用于获取 child.