gpt4 book ai didi

javascript - 我正在使用 jquery next 和 cosest 选项来仅选择一个元素,但这将类应用于每个元素

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:47 24 4
gpt4 key购买 nike

我的HTML菜单是这样的

<div style="margin-top: 200px; width: 140px; text-align: left; line-height: 20px;">
<div class="lmenu">Home</div>
<div class="lmenu">About Us</div>
<div class="lmenu parent">Our Services
<div class="subparent">
Event Management
<div class="child">
Categories
</div>
<div class="child">
Providing Facilities
</div>
</div>
<div class="subparent">
Rental
<div class="child">
AVEquipments
</div>
<div class="child">
Other Services
</div>
</div>
<div class="subparent">
Exhibition Stalls
<div class="child">
Standard Stall
</div>
<div class="child">
Designed Stalls
</div>
</div>
</div>
<div class="lmenu parent">About Us
<div class="subparent">
Our Company
<div class="child">
Categories
</div>
<div class="child">
Our Team
</div>
</div>
</div>
</div>

我在 mouseover 和 mouseout 函数上使用 jQuery 来查看子项。但是当我只将鼠标悬停在一个菜单项上时,每个子菜单都将可见。

这是我的jquery

var $sub_itmes;
$(".parent").on({
mouseover: function() {
$sub_itmes = $(".lmenu").next().find(".subperent");
$sub_itmes.css({
"display": "block",
});
$sub_itmes.animate({
"opacity": 1
});
},
mouseleave: function() {
$sub_itmes = $(".lmenu").next().find(".subperent");
$sub_itmes.css({
"display": "none",
});
$sub_itmes.animate({
"opacity": 0
});
}
});

$(".subperent").on({
mouseover: function() {
$sub_itmes = $(this).closest('.lmenu').find(".chilld");
$sub_itmes.css({
"display": "block",
});
$sub_itmes.animate({
"opacity": 1
});
},
mouseleave: function() {
$sub_itmes = $(this).closest('.lmenu').find(".chilld");
$sub_itmes.css({
"display": "none",
});
$sub_itmes.animate({
"opacity": 0
});
}
});

我找不到我哪里错了。

谢谢。

最佳答案

你的发现是这样做的

  1. 从当前元素中找到.lmenu(它是父元素)
  2. 现在找到顶级父级中的所有 .chilld(它将找到所有这些)
  3. 显示/隐藏它们

通过使用语法 $(query,scope),您可以找到当前选择范围内的元素。

var $sub_itmes;
$(".parent").on({
mouseover: function() {
$sub_itmes = $('.subperent',this);
$sub_itmes.fadeIn('slow');
},
mouseleave: function() {
$sub_itmes = $('.subperent',this);
$sub_itmes.fadeOut('slow');
}
});

$(".subperent").on({
mouseover: function() {
$sub_itmes = $('.chilld',this);
$sub_itmes.fadeIn('slow');
},
mouseleave: function() {
$sub_itmes = $('.chilld',this);
$sub_itmes.fadeOut('slow');
}
});

fiddle

旁注请看hoverIntent插件,它将忽略快速鼠标悬停,但仅在用户似乎想要这样做时才激活。

关于javascript - 我正在使用 jquery next 和 cosest 选项来仅选择一个元素,但这将类应用于每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23590570/

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