列表项目显示/隐藏不同并分开 div 和 jQuery
List items show / hide different and separate div with jQuery
正如你从问题中看到的那样,我对 jQuery 和这种类型的编码不是很好。
我正在构建一个 megamenu,其中一个菜单项应该显示 div,如下图所示:https://pasteboard.co/H2zzoDs.jpg
正如您在我的 fiddle https://codepen.io/byte37/pen/YYLmNq 中看到的那样,我无法显示我悬停的 li 元素的相应 Div。
我想要实现的是,当我将鼠标悬停在列表元素之一 (li) 上时,我想显示相应的 Div.
<div class="cbi-main-menu">
<div class="row">
<div class="col-md-3">
<div class="cbi-menu-sidebar">
<h3 class="menu-item-prime">Menu</h3>
<ul id="menu-left" class="no-style">
<li><a id="lnk1" href="#" class="menu-item-1" >Link 1</a></li>
<li><a id="lnk2" href="#" class="menu-item-2">Link 2</a></li>
<li><a id="lnk3" href="#" class="menu-item-3">Link 3</a></li>
<li><a id="lnk4" href="#" class="menu-item-4">Link 4</a></li>
<li><a id="lnk5" href="#" class="menu-item-5">Link 5</a></li>
<li><a id="lnk6" href="#" class="menu-item-6">Link 6</a></li>
<li><a id="lnk7" href="#" class="menu-item-7">Link 7</a></li>
<li><a id="lnk8" href="#" class="menu-item-8">Link 8</a></li>
<li><a id="lnk9" href="#" class="menu-item-9">Link 9</a></li>
<li><a id="lnk10" href="#" class="menu-item-10">Link 10</a></li>
</ul>
</div>
</div>
<div class="col-md-9">
<div class="link-show container-menu" id="item-1"><img src="http://via.placeholder.com/350x150" id="item-1">Link1</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-2">Link2</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-3">Link3</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-4">Link4</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-5">Link5</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-6">Link6</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-7">Link7</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-8">Link8</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-9">Link9</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-10">Link10</div>
</div>
</div>
</div>
JS:
$('#menu-left li').hover(
function() {
$(this).closest('.container-menu').find('.link-show').show();
},
function() {
$(this).closest('.container-menu').find('.link-show').hide();
});
追问:由于我要显示/隐藏的div内容主要是图片制作的,请问有没有办法只有鼠标悬停在
元素上才加载内容?而不是仅在将鼠标悬停在 < li > 上时才加载所有内容并显示内容?
谢谢!
您可以为每个 li 元素添加一个数据菜单,其中包含您要显示的菜单的 ID,如下所示:
<li data-menu="item-1"><a id="lnk1" href="#" class="menu-item-1" >Link 1</a></li>
然后您应该向要显示的 div 添加一个 id 属性,就像您为第一个所做的那样:
<div class="link-show container-menu" id="item-1">
<img src="http://via.placeholder.com/350x150" id="item-1">Link1
</div>
以这种方式链接这两个项目,您可以有一个简单的处理程序来悬停 li 元素,例如:
$('#menu-left li').hover(
function() {
$("#" + $(this).data("menu")).show();
},
function() {
$("#" + $(this).data("menu")).hide();
}
);
正如你从问题中看到的那样,我对 jQuery 和这种类型的编码不是很好。
我正在构建一个 megamenu,其中一个菜单项应该显示 div,如下图所示:https://pasteboard.co/H2zzoDs.jpg
正如您在我的 fiddle https://codepen.io/byte37/pen/YYLmNq 中看到的那样,我无法显示我悬停的 li 元素的相应 Div。
我想要实现的是,当我将鼠标悬停在列表元素之一 (li) 上时,我想显示相应的 Div.
<div class="cbi-main-menu">
<div class="row">
<div class="col-md-3">
<div class="cbi-menu-sidebar">
<h3 class="menu-item-prime">Menu</h3>
<ul id="menu-left" class="no-style">
<li><a id="lnk1" href="#" class="menu-item-1" >Link 1</a></li>
<li><a id="lnk2" href="#" class="menu-item-2">Link 2</a></li>
<li><a id="lnk3" href="#" class="menu-item-3">Link 3</a></li>
<li><a id="lnk4" href="#" class="menu-item-4">Link 4</a></li>
<li><a id="lnk5" href="#" class="menu-item-5">Link 5</a></li>
<li><a id="lnk6" href="#" class="menu-item-6">Link 6</a></li>
<li><a id="lnk7" href="#" class="menu-item-7">Link 7</a></li>
<li><a id="lnk8" href="#" class="menu-item-8">Link 8</a></li>
<li><a id="lnk9" href="#" class="menu-item-9">Link 9</a></li>
<li><a id="lnk10" href="#" class="menu-item-10">Link 10</a></li>
</ul>
</div>
</div>
<div class="col-md-9">
<div class="link-show container-menu" id="item-1"><img src="http://via.placeholder.com/350x150" id="item-1">Link1</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-2">Link2</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-3">Link3</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-4">Link4</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-5">Link5</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-6">Link6</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-7">Link7</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-8">Link8</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-9">Link9</div>
<div class="link-show container-menu"><img src="http://via.placeholder.com/350x150" id="item-10">Link10</div>
</div>
</div>
</div>
JS:
$('#menu-left li').hover(
function() {
$(this).closest('.container-menu').find('.link-show').show();
},
function() {
$(this).closest('.container-menu').find('.link-show').hide();
});
追问:由于我要显示/隐藏的div内容主要是图片制作的,请问有没有办法只有鼠标悬停在
谢谢!
您可以为每个 li 元素添加一个数据菜单,其中包含您要显示的菜单的 ID,如下所示:
<li data-menu="item-1"><a id="lnk1" href="#" class="menu-item-1" >Link 1</a></li>
然后您应该向要显示的 div 添加一个 id 属性,就像您为第一个所做的那样:
<div class="link-show container-menu" id="item-1">
<img src="http://via.placeholder.com/350x150" id="item-1">Link1
</div>
以这种方式链接这两个项目,您可以有一个简单的处理程序来悬停 li 元素,例如:
$('#menu-left li').hover(
function() {
$("#" + $(this).data("menu")).show();
},
function() {
$("#" + $(this).data("menu")).hide();
}
);