我希望在侧边菜单中显示链接,具体取决于顶部导航中悬停的链接,并显示它们,直到另一个链接悬停。这就是我所拥有的:
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的:
$(document).ready(function() {
$('.toggle').hover(function () {
$('#sideMenuLinks').show('slow');
});
});
这只能在悬停时显示,但显然仅适用于sideMenuLinks
,我在不同的ID中有更多链接,所以如果我徘徊在&#34; LINK 2&#34;这些链接将被替换等等。有意义吗?
谢谢!
答案 0 :(得分:0)
我会在主导航链接中添加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>
然后,您可以在悬停时获得data-menu
值:
$(".toggle").hover(function() {
$(".menuContent").each(function() {
$(this).hide();
});
var menu = $(this).attr("data-menu");
$('#' + menu).show('slow');
});
尚未对此进行测试,但最终可能会使菜单更具动态性。
答案 1 :(得分:0)
如果我理解正确,你有几个ID,当你在页面上的其他地方悬停相应的链接时,你只想显示。
所以,你能做的更多的是你要做的事情。想象一下,你有这个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>
现在你可以使用一个简单的for循环和你已经拥有的jQuery来实现它。 jQuery的:
$(document).ready(function() {
for(i=0,i<3,i++){
classname = '.toggle'+i;
id = '#sideMenuLinks'+i;
$(classname).hover(function () {
$(id).show('slow');
});
}
});
我没有对此进行测试,但它是一个简单,全面的解决方案。希望这对你有所帮助!