正如我在问题标题中所说,我创建了一个带有两个下拉框的导航栏。问题是当我尝试使用悬停打开一个菜单时(仅与一个下拉框完美配合),第二个菜单同时打开。这是我创建的脚本。任何建议都会很高兴地被接受!
<script>
$(document).ready(function () {
$(".dropdown").hover(
function () {
$("ul.dropdown-menu").slideDown("medium").stop(true,true);
},
function () {
$("ul.dropdown-menu").slideUp("medium").stop(true,true);
}
);
});
</script>
最佳答案
这是因为$("ul.dropdown-menu")
是类ul
的所有dropdown-menu
元素的jQuery对象表示形式。 $(".dropdown")
也是如此。
您可以使用each()
解决此问题。
遍历jQuery对象,为每个匹配的对象执行一个函数
元件。
在回调函数中,使用$(this)
访问每个jQuery对象,并使用:eq
获取$("ul.dropdown-menu")
的第n个对象(它是基于0的,因此第一个对象是:eq(0)
)。
。
var a =0;
$(".dropdown").each(function(){
var b = a;
$(this).hover(function () {
$("ul.dropdown-menu:eq("+b+")").slideDown("medium").stop(true,true);
}, function() {
$("ul.dropdown-menu:eq("+b+")").slideUp("medium").stop(true,true);
});
a++;
});