我正在使用:
$("ul.menu").closest(".wrap").mouseenter(function () {
$("#nav-blackout").css("display", "block");
})
$("ul.menu").closest(".wrap").mouseleave(function () {
$("#nav-blackout").css("display", "none");
});
然而,当鼠标进入ul.menu li但是如果我将其添加为多重选择器时,我希望发生同样的事情:
$("ul.menu, ul.menu li").closest(".wrap").mouseenter(function () {
$("#nav-blackout").css("display", "block");
})
那么它当然还在寻找最接近的.wrap,这不是我想做的 - 所以我需要把它写出两次(一次用于最接近的包装,一次用于ul.menu li)或者是这样做的一种更简洁的方式?
答案 0 :(得分:0)
尝试$("ul.menu").closest(".wrap").add('ul.menu li')
;
$('ul.menu li').closest('.wrap').addBack()
也可能有用。
您也可以使用.hide()
代替.css("display", "none")
和.show()
作为相反的内容,而.toggle()
则会将两者交替使用。
.hover()
将允许您同时指定mouseenter和mouseleave处理程序。
$('ul.menu li').closest('.wrap').addBack().hover(
function () { //mouseenter handler
$("#nav-blackout").show()
}, function () { //mouseleave handler
$("#nav-blackout").hide()
}
);