单击下拉菜单中的链接不起作用
Clicking on link inside dropdown menu doesn't work
我有一个dropdown
菜单,它工作正常,但是当我在dropdown
菜单中添加链接时,该链接不起作用。
检查此处的小提琴,并尝试单击链接2和google
链接;这是不起作用的google
链接。
.HTML
<div class="menu">
<div class="link">
<a href="#">Link 1</a>
<div class="dropdown">
Content for dropdown 1
</div>
</div>
<div class="link">
<a href="#">Link 2</a>
<div class="dropdown">
<a href="http://google.com">Google</a>
</div>
</div>
</div>
简讯
$('.link a').on("click", function(e){
e.preventDefault();
$(this).parent('.link').siblings().children('.dropdown').fadeOut();
$(this).siblings('.dropdown').fadeToggle();
});
$(document).mouseup(function (e)
{
var container = $(".dropdown");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
}
});
.CSS
.link {
display: inline-block;
position: relative;
float: right;
}
.link a {
padding: 10px;
}
.link .dropdown {
display: none;
position: absolute;
top: 20px;
right: 0px;
color: white;
background: #999;
height: 200px;
width: 200px;
padding: 20px;
border: 1px solid red;
}
http://jsfiddle.net/abLku7e1/2
知道如何解决这个问题吗?
提前致谢
e.preventDefault();
是问题所在,它.link a
a
的所有 .link
的十进制者。对父级链接使用.link > a
。
>
的意思是直接的孩子。
试试这个:
$('.link > a').on("click", function(e){
e.preventDefault();
$(this).parent('.link').siblings().children('.dropdown').fadeOut();
$(this).siblings('.dropdown').fadeToggle();
});
您只想定位 .link 的直系后代。
我有一个非常相似的问题。 我的CSS菜单是这样的:
<ul>
<li><a href="#internal link"> Working </a></li>
<li><a href="http://external link"> Not working </a></li>
</ul>
像你一样,我的javascript使用e.preventDefault();
单击后关闭菜单,对于外部链接,它将关闭菜单而不实际转到该外部链接。
我通过添加一个跨度来解决它:
<ul>
<li><a href="#internal link"> Working </a></li>
<li> <span> <a href="http://external link"> </span> Now its working </a></li>
</ul>
将 JS 代码更改为仅作用于第一个链接,而不是像下面那样的所有子链接
$('.link>a').on("click", function(e){
e.preventDefault();
$(this).parent('.link').siblings().children('.dropdown').fadeOut();
$(this).siblings('.dropdown').fadeToggle();
});
$(document).mouseup(function (e)
{
var container = $(".dropdown");
if (!container.is(e.target) // if the target of the click isn't the container...
&& container.has(e.target).length === 0) // ... nor a descendant of the container
{
container.hide();
}
});
注意链接>仅表示第一级
http://jsfiddle.net/neka5u0d/
相关文章:
- 我的下拉菜单中的链接不起作用
- Ajax:Ajax响应中的链接不起作用
- jQuery Mobile到其他页面的锚链接不起作用
- 外部JavaScript链接不起作用
- 为什么我的动态更改链接不起作用?(Javascript)
- DOM事件链接不起作用
- javascript中最大字符数的链接不起作用
- jQuery高亮显示滚动导航链接不起作用
- 鼠标悬停导航链接不起作用
- 单击下拉菜单中的链接不起作用
- jQuery 链接不起作用
- 使用javascript的方法链接不起作用
- 具有另一个背景图像的图像上的链接不起作用
- AJAX 请求类似的链接不起作用
- 移动设备上的网站超链接不起作用
- JavaScript链接不起作用
- 谷歌地图自定义标记链接不起作用
- 铬错误或编码错误?目标页面中的锚/ID 链接不起作用
- 模式对话框内的链接不起作用
- IE javascript 书签let PDF 链接不起作用