下面的代码用于显示和隐藏大型下拉列表。如果将鼠标悬停在具有“DropDown”类的链接上,则会显示“Child”。DropPanel。只要鼠标位于链接或放置面板上,放置面板将保持显示状态。将光标移动到链接或面板以外的任何位置,面板将隐藏。基本的东西。
在这些大型下拉列表中,有一些表单包含select元素。在火狐中,一切都很好。在IE中(具体来说是8,还没有测试任何其他版本),如果您将鼠标悬停在放置面板中的一个select元素上,hoverintent将激发dropPaneloff()的“out”函数,而放置面板将隐藏。
我该如何预防?
// Apply Hover Intent to Menu Panels
$(".dropDown").hoverIntent({
sensitivity: 10,
interval: 150,
over: dropPanelOn,
timeout: 150,
out: dropPanelOff
});
// Menu Over function call
function dropPanelOn() {
$('a[rel="dropLink"]', this).addClass('hover');
$('.dropPanel', this).slideDown('fast');
}
// Menu Out function call
function dropPanelOff() {
obj = this;
$('.dropPanel', this).slideUp(100, function(){
$('a[rel="dropLink"]', obj).removeClass('hover');
$('.dropLink span', obj).removeClass('hover');
});
}