[英]Display links in side menu when main nav links are hovered
I want to show links in the side menu, depending on what link is hovered in the top nav, and display them until another link is hovered. 我想在侧边菜单中显示链接,具体取决于顶部导航中悬停了什么链接,并显示它们直到悬停另一个链接。 Here's what I have: 这是我所拥有的:
HTML: HTML:
<ul class="nav navbar-nav">
<li class="nav"><a class="toggle" href="#">LINK 1</a></li>
<li class="nav"><a class="toggle" href="#">LINK 2</a></li>
<li class="nav"><a class="toggle" href="#">LINK 3</a></li>
<li class="nav"><a class="toggle" href="#">LINK 4</a></li>
<li class="nav"><a class="toggle" href="#">LINK 5</a></li>
<li class="nav"><a class="toggle" href="#">LINK 6</a></li>
</ul>
<div class="sideMenu">
<div id="sideMenuLinks">
<ul id="menuContent" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
<li><a href="#">SM LINK 3</a></li>
<li><a href="#">SM LINK 4</a></li>
<li><a href="#">SM LINK 5</a></li>
<li><a href="#">SM LINK 6</a></li>
</ul>
</div>
</div>
jQuery: jQuery的:
$(document).ready(function() {
$('.toggle').hover(function () {
$('#sideMenuLinks').show('slow');
});
});
This works to just display on hover but obviously only for sideMenuLinks
, I have more links in different ID's, so if I hovered on "LINK 2" those links would be replaced and so on. 该方法仅在悬停时显示,但显然仅适用于sideMenuLinks
,我在不同的ID中具有更多链接,因此,如果将鼠标悬停在“ LINK 2”上,这些链接将被替换,依此类推。 Make sense? 说得通?
Thanks! 谢谢!
I would add a data-*
attribute to the main navigation links like so: 我将data-*
属性添加到主导航链接中,如下所示:
<ul class="nav navbar-nav">
<li class="nav"><a class="toggle" data-menu="first" href="#">LINK 1</a></li>
<li class="nav"><a class="toggle" data-menu="second" href="#">LINK 2</a></li>
<li class="nav"><a class="toggle" data-menu="third" href="#">LINK 3</a></li>
</ul>
<div class="sideMenu">
<div id="sideMenuLinks">
<ul id="first" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
</ul>
<ul id="second" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
</ul>
<ul id="third" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
</ul>
</div>
</div>
Then you could get the data-menu
value when hovering: 然后,您可以在悬停时获取data-menu
值:
$(".toggle").hover(function() {
$(".menuContent").each(function() {
$(this).hide();
});
var menu = $(this).attr("data-menu");
$('#' + menu).show('slow');
});
Haven't tested this, but this could eventualy make the menus a little bit more dynamic. 尚未对此进行测试,但这最终可能会使菜单更具动态性。
If i comprehend correctly, you have several ID's, that you only want te have shown, when a corresponding link is hovered somewhere else on the page. 如果我正确理解,当相应的链接悬停在页面上的其他位置时,您将拥有几个只希望显示的ID。
So, what you could make is a bit more of what you got going. 因此,您可以做的是更多您正在做的事情。 Imagine you got this HTML: 假设您有以下HTML:
<ul class="nav navbar-nav">
<li class="nav"><a class="toggle1" href="#">LINK 1</a></li>
<li class="nav"><a class="toggle2" href="#">LINK 2</a></li>
<li class="nav"><a class="toggle3" href="#">LINK 3</a></li>
</ul>
<div class="sideMenu">
<div id="sideMenuLinks1">
<ul id="menuContent" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
<li><a href="#">SM LINK 3</a></li>
<li><a href="#">SM LINK 4</a></li>
<li><a href="#">SM LINK 5</a></li>
<li><a href="#">SM LINK 6</a></li>
</ul>
</div>
<div id="sideMenuLinks2">
<ul id="menuContent" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
<li><a href="#">SM LINK 3</a></li>
<li><a href="#">SM LINK 4</a></li>
<li><a href="#">SM LINK 5</a></li>
<li><a href="#">SM LINK 6</a></li>
</ul>
</div>
<div id="sideMenuLinks3">
<ul id="menuContent" class="menuContent collapse out">
<li><a href="#">SM LINK 1</a></li>
<li><a href="#">SM LINK 2</a></li>
<li><a href="#">SM LINK 3</a></li>
<li><a href="#">SM LINK 4</a></li>
<li><a href="#">SM LINK 5</a></li>
<li><a href="#">SM LINK 6</a></li>
</ul>
</div>
</div>
Now you can use a simple for loop and the jQuery you already got, to get it going. 现在,您可以使用简单的for循环和已有的jQuery来实现它。 jQuery: jQuery的:
$(document).ready(function() {
for(i=0,i<3,i++){
classname = '.toggle'+i;
id = '#sideMenuLinks'+i;
$(classname).hover(function () {
$(id).show('slow');
});
}
});
I have not tested this, but its a simple, comprehensive solution. 我没有测试过,但是它是一个简单,全面的解决方案。 Hope this helped you! 希望这对您有所帮助! . 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.