Jquery/JS和CSS水平列表导航单击下拉超链接不工作
Jquery/JS and CSS Horizontal list Navigation Click Drop Down Hyperlinks Not Working
我用css和jquery下拉元素创建了一个看起来相当直接的水平导航菜单,但由于某种原因,它似乎没有遵循点击下拉菜单上的链接。
我做了一个小提琴:http://jsfiddle.net/y3GBE/19/
<nav>
<ul id="menu-main-navigation" class="menu">
<li id="menu-item-108" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-108">
<a title="Sub" href="http://Media">Hover</a>
<ul class="sub">
<li id="menu-item-109" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-109">
<a title="Audio" href="http://Audio">Audio</a>
</li>
<li id="menu-item-110" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-110">
<a href="http://Visual">Visual</a>
</li>
</ul>
</li>
<li id="menu-item-112" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-112">
<a href="http://Events">Navi</a>
</li>
<li id="menu-item-113" class="menu-item menu-item-typemenu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-117">
<a href="http://click">Click</a>
<ul class="sub-menu">
<li id="menu-item-115" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-115">
<a href="http://HQ">Headquarters</a>
</li>
<li id="menu-item-116" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-116">
<a href="http://Magazine">Magazine</a>
</li>
</ul>
</li>
</ul>
</nav>
悬停在" Hover "上是可以的,"click"链接在它应该工作的地方,但子菜单链接不起作用。
Thanks in advance
将选择器更改为$('.menu-item-has-children>a')
,仅针对锚标记,而不是包含子菜单的列表项。
小提琴:http://jsfiddle.net/y3GBE/20/
将第一个jQuery代码段更改为:
$('.sub-menu a').click(function (e) {
e.stopPropagation();
});
链接上的单击正在向上传播,并触发父项上的单击事件处理程序。
您的子菜单链接在类.menu-has-children
的元素内,因此由于您将return false;
添加到单击事件中,因此链接不可单击。您应该将事件侦听器添加到链接中,而不是添加到元素中。
注意,我将类menu-link
添加到主菜单的a
元素中。下面是一个工作演示
$('.menu-item-has-children').on('click', '.menu-link', function(e) {
e.preventDefault();
var $parentMenu = $(this).parents('.menu-item-has-children');
$parentMenu.toggleClass('active');
$('.sub-menu', $parentMenu).toggleClass('visible');
});
相关文章:
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 如何在单击超链接时调用同一函数中定义的函数
- 为什么首先单击文档空白处的任何位置启动代码,而不是单击超链接,以及为什么打开了太多选项卡
- Javascript 在单击超链接时运行操作
- 通过单击超链接切换文本
- 避免在用户单击超链接时留下页面确认
- 单击超链接后在同一页面中显示对象
- 单击超链接的跟踪信息
- 在页面加载时隐藏菜单,需要在单击超链接时填充
- 单击超链接时保存文件
- Jquery对话框-单击超链接时打开
- 如何在引导模式中通过单击超链接打开文本框后为其设置值
- 单击超链接时,需要将控件传递给方法
- 如何防止单击超链接后重定向
- 在JQGrid中的一列中添加一个超链接,单击“超链接”将调用Jquery函数
- 在页面加载时自动单击超链接
- 如何防止页面滚动到顶部,在单击超链接之后,以及基于服务器的刷新之后
- 无法在单击超链接时显示警报
- 文本分配给文本框,单击超链接