gpt4 book ai didi

javascript - jQuery on ul 上的函数和其中的 ul

转载 作者:行者123 更新时间:2023-12-03 12:42:46 24 4
gpt4 key购买 nike

我的导航结构如下

<ul class="parentul">
<li class="has-dropdown">
<a href="">Link title<span class="desc">Link desc</span></a>
<ul class="dropdown">
<li class="title back">
<h5><a href="#">Back</a></h5>
</li>
<li>
<h5><a href="#">Option 1</a></h5>
</li>
<li>
<h5><a href="#">Option 2</a></h5>
</li>
</ul>
</li>
</ul>

jQuery:

$('ul > li.has-dropdown').on('click', function(e){
e.preventDefault();
var $this = $(this);
$this.addClass('moved');
$('.parentul').animate({
left: "-100%"
});

});

$('ul > li.has-dropdown.moved > ul > li.back').on('click', function(e){
e.preventDefault();
var $this = $(this);
$this.closest('.has-dropdown').removeClass('moved');
$('.parentul').animate({
left: "0"
});
});

我有一个 li.has-dropdown 的点击功能,可以将其滑出 View 并使子 ul 进入 View ,但是我希望子 li.back 启动它滑回并将原始导航带入 View .

我的问题是,子 ul 位于 li.has-dropdown 内,单击任何链接都会启动原始转换的行为。

单击 li.has-dropdown 之一将子 ul 滑入 View ,并让子 ul 中的 li.back 将其滑回到原来的状态的最佳方法是什么?

提前非常感谢

最佳答案

您需要使用event.stopPropagation()在 li.back 事件处理程序中。

Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.

代码

$('ul > li.has-dropdown.moved > ul > li.back').on('click', function(e){
e.stopPropagation();

var $this = $(this);
$this.closest('.has-dropdown').removeClass('moved');
$('.parentul').animate({
left: "0"
});
});

关于javascript - jQuery on ul 上的函数和其中的 ul,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23478215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com