这里是场景:我有两组导航,主要和次要。主导航将始终存在于页面上,辅助导航将不会始终存在。在包含辅助导航的页面上,我希望主导航仅在将“缀”类附加到辅助导航时(在页面向下滚动到特定位置之后,才在mouseenter和mouseleave上执行某些操作),但这是单独的一段代码)。
我当前拥有的代码如下:
<aside id="aside" [hidden]="!menu">
<button class="menu-btn" (click)="menu = false" routerLink="/">Strona Główna</button>
<button (click)="menu = false" routerLink="/cv">CV</button>
<button (click)="menu = false" routerLink="/bio">BIO</button>
<button (click)="menu = false" routerLink="/portfolio">Portfolio</button>
<button (click)="menu = false" routerLink="/kontakt">Kontakt</button>
</aside>
<button id="menu-btn" [class.aside]="menu" (click)="showMenu()">Klik</button>
按原样运行时,无论subnav是否在页面上,导航项始终会触发代码。我可能应该首先检查页面上是否存在.tabbed-sticky-nav,这样,如果页面上没有辅助导航,那么就不用再在悬停时检查任何内容了。但是,如果.tabbed-sticky-nav DOES存在并且添加了“缀”类,则只有这样,我才希望潜在地应用主导航的悬停操作。我该如何进行更改,以便在这些情况下进行干净的检查和执行?
答案 0 :(得分:2)
jQuery总是返回某些内容,因此检查元素是否存在的方法是使用length property。这将告诉您给定选择器返回了多少个元素。
if (!stickyNav.length){
...
}