首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何压缩此代码以说明将来的导航项目?

如何压缩此代码以说明将来的导航项目?
EN

Stack Overflow用户
提问于 2018-02-06 00:26:01
回答 1查看 33关注 0票数 1

我想压缩以下jQuery代码,因为我想在不调整此jQuery代码的情况下考虑将来的导航项目。

jQuery

代码语言:javascript
复制
$('.nav-1, .mega-menu-1').on('hover', function() {
  $('.mega-menu-1').toggleClass('slide');
});
$('.nav-2, .mega-menu-2').on('hover', function() {
  $('.mega-menu-2').toggleClass('slide');
});
$('.nav-3, .mega-menu-3').on('hover', function() {
  $('.mega-menu-3').toggleClass('slide');
});

HTML

代码语言:javascript
复制
<ul class="menu">
  <li class="nav-1"><a href="#">Item 1</a></li>
  <li class="nav-2"><a href="#">Item 2</a></li>
  <li class="nav-3"><a href="#">Item 3</a></li>
</ul>

<div class="mega-menu">
  <div class="mega-menu-1">Content 1</div>
  <div class="mega-menu-2">Content 2</div>
  <div class="mega-menu-3">Content 3</div>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-06 01:02:11

如果您不想将索引作为数据属性添加,则可以这样做

我将menu-item类添加到所有项目中,以便它可以以一个类为目标。.index()获取元素的索引,.eq(index)提供该索引处的元素。我还更新了mega menu ul类,这样它就不会与其他mega菜单类冲突

在未来,您可以只添加项目,而不用担心更新索引。

https://jsfiddle.net/2xr1gtLk/1/

代码语言:javascript
复制
<ul class="menu">
  <li class="nav menu-item"><a href="#">Item 1</a></li>
  <li class="nav menu-item"><a href="#">Item 2</a></li>
  <li class="nav menu-item"><a href="#">Item 3</a></li>
</ul>

<div class="mega-menu-container">
  <div class="mega-menu menu-item">Content 1</div>
  <div class="mega-menu menu-item">Content 2</div>
  <div class="mega-menu menu-item">Content 3</div>
</div>

JS

代码语言:javascript
复制
$('.menu-item').hover(function() {
    $('.mega-menu').eq( $(this).index() ).toggleClass('slide');
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48627029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档