[英]jQuery on click function To li and nested li
我有一个单击功能,基本上可以在单击时关闭菜单上的幻灯片,然后转到URL,因此看起来更好。 在父标签的li
标签上效果很好,但在嵌套的li
标签上却没有。 似乎嵌套嵌套的li
单击时返回了href
,父级单击了href
因此它失败了。
$('#menu-pages li').on('click', function(event) {
event.preventDefault();
/* Act on the event */
var href = $(this).children('a').attr('href');
page.toggleClass('menu-open');
mobileMenu.toggleClass('mobile-menu-open');
page.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
window.location = href;
});
});
<div id="menu-pages">
<li><a href="/dashboard/">My Dashboard</a></li>
<li><a href="/Community/">Community</a>
<ul class="sub-menu">
<li><a href="/forum/">forum</a></li>
<li><a href="/messages/">Messages</a></li>
<li><a href="/groups/">groups</a></li>
</ul>
</li>
<li><a href="/teachings/">Teachings</a>
<ul class="sub-menu">
<li><a href="/teachings/?category=Creativity">Creativity</a></li>
<li><a href="/teachings/?category=Craft">Craft</a></li>
<li><a href="/teachings/?category=Coaching">Coaching</a></li>
<li><a href="/teachings/?category=Conversations">Conversations</a></li>
<li><a href="/checklists/">Checklists</a></li>
</ul>
</li>
</div>
您有嵌套的li标签,而click事件可能是由内部标签之前的外部标签触发的。
您可以随时将其更改为“ a”标签,也可以将委托用于单个监听器
委托方法还可以解决“ li”标签点击事件的顺序,因为它会从子元素中冒出
$('#menu-pages').on('click', 'a', function(event) {
event.preventDefault();
/* Act on the event */
var href = $(this).attr('href');
page.toggleClass('menu-open');
mobileMenu.toggleClass('mobile-menu-open');
page.one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
window.location = href;
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.