javascript - 在 jQuery 中打开子菜单链接

标签 javascript jquery html

我正在处理这个

  $(document).ready(function() {
  $('#links').find('a:eq(0)').addClass('active');
  $('#linksobsah').children().hide().eq(0).show();     

  $('#links').children().click(function() {
  $('#links').find('a:eq(0)').addClass('active');
  var index = $('#links').children().index(this);
  $('#linksobsah').children().hide(100).eq(index).show(500);               
  $('#links').children().removeClass('active');
  $(this).addClass('active'); 
  });
});

JSFiddle 在这里 https://jsfiddle.net/m92rga7h/

当我点击链接 1 时,一切正常。子菜单显示,当我单击某个子菜单时,它会显示当前内容。但它不适用于链接 2,但 html 和 jQuery 中的代码仍然相同。

我怎样才能做到这一点?

最佳答案

问题是您试图在单击 link2 时显示 linksobsah 中的第一个 ul。实际上,对于链接 2,您应该在 linksobsah 中查询第二个 ul。

使用这个 $('#linksobsah ul:eq( 1 )')//索引 1 表示第二个 ul

而不是链接 2 中的 $('#linksobsah ul')

工作 js fiddle 。 https://jsfiddle.net/taod03by/

$(document).ready(function() {
      $('#links').find('a:eq(0)').addClass('active');
    	$('#linksobsah').children().hide().eq(0).show();     
	
			$('#links').children().click(function() {
      $('#links').find('a:eq(0)').addClass('active');
      var index = $('#links').children().index(this);
      $('#linksobsah').children().hide(100).eq(index).show(500);               
			$('#links').children().removeClass('active');
      $(this).addClass('active'); 
    });
});

$(document).ready(function() {
	    $('#menulink1').children().hide();     
			$('#linksobsah ul').children().click(function() {
      $('#linksobsah ul').find('li').addClass('active');
			var index = $('#linksobsah ul').children().index(this);
      $('#menulink1').children().hide(100).eq(index).show(500);               
			$('#linksobsah ul').children().removeClass('active');
      $(this).addClass('active'); 
    });
	    });

	
$(document).ready(function() {
	   $('#menulink2').children().hide();     
		 $('#linksobsah ul:eq( 1 )').children().click(function() {
     $('#linksobsah ul:eq( 1 )').find('li').addClass('active');
		 var index = $('#linksobsah ul:eq( 1 )').children().index(this);
     $('#menulink2').children().hide(100).eq(index).show(500);               
		 $('#linksobsah ul:eq( 1 )').children().removeClass('active');
     $(this).addClass('active'); 
    });
	    });



// JavaScript Document
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="links">
<div class="link1">
<div class="linktext">Link1</div>
</div>
<div class="link2">
<div class="linktext">Link2</div>
</div>
<div class="link3">
<div class="linktext">Link3</div>
</div>
</div>
<div id="linksobsah">
<div>
<ul>
<li>Link 1 submenu 1</li>
<li>Link 1 submenu 2</li>
<li>Link 1 submenu 3</li>
</ul>
<div id="menulink1">
<div>Link 1 submenu 1 content</div>
<div>Link 1 submenu 2 content</div>
<div>Link 1 submenu 3 content</div>
</div>
</div>
<div>
<ul>
<li>Link 2 submenu 1</li>
<li>Link 2 submenu 2</li>
<li>Link 2 submenu 3</li>
</ul>
<div id="menulink2">
<div>Link 2 submenu 1 content</div>
<div>Link 2 submenu 2 content</div>
<div>Link 2 submenu 3 content</div>
</div>
</div>
<div>Content 3</div>
</div>

关于javascript - 在 jQuery 中打开子菜单链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255280/

相关文章:

javascript - 在 onClick 中 react onClick

jquery - 文本动画,两个单词组合在一起并创建一个新单词

javascript - 单击时添加 css 类不会应用于所有行 - Bootstrap Table

javascript - ember.js 教程 : is really working Mirage addon?

javascript - 为什么已检查的 radio 输入的值可以正确访问,但在 "for"循环内访问时默认为组中的第一个值?

javascript - 我可以让浏览器关注这些链接吗

.net - 是否可以在外部 javascript 文件中插入我的尖括号、百分比、等于 <%= %> 语法?

javascript - 如何使用按钮显示表单中的文本?

html - 在 div 宽度 :100% leaving some margin in all sides 内居中文本框

html - 下拉菜单下的 div 可见性