SuperFish菜单防止隐藏具有特定类的元素

时间:2014-12-11 19:46:52

标签: jquery superfish

我有超级鱼菜单,我希望它在所有情况下都能按预期运行,除了我有一些我想要一直打开的子菜单项。我给了他们一类sf-exclude

<ul class="sf-menu">
  <li><a>Parent Item</a>
    <ul> ... </ul> <-- this behaves as expected
  </li>
  <li><a>Parent Item</a>
    <div class="sf-mega">
      <ul class="sf-exclude"> ... </ul> <-- these menu items remain open always but retain sfHover toggle
      <ul class="sf-exclude"> ... </ul>
    </div>
  </li>
</ul>

在我的JavaScript中,我有类似的东西:

jQuery(".sf-menu").superfish({
  onHide: function() {
    if (this.attr('class') == 'sf-exclude'){return false;} <-- this is not preventing the hide
  }
});

我试过onBeforeHide。我已经调整了CSS中的所有内容。不知道我做错了什么......有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案:

jQuery(".sf-menu").superfish({
  onBeforeHide: function() {
    if (this.attr('class') == 'sf-exclude'){
      this.stop(true,true);
    }
  }
});

最大的关键是停止执行当前堆栈中的任何jQuery动画,但允许进程继续运行,以便我可以保持添加sfHover类等。使用stop(true,true)执行此操作。