次のコードは、メガ ドロップダウンの表示と非表示に使用されます。「dropDown」クラスのリンクにマウスオーバーすると、その子「.dropPanel」が表示されます。マウスがリンクまたはドロップ パネルの上にある限り、ドロップ パネルは表示されたままになります。リンクまたはパネル以外の場所にカーソルを移動すると、パネルが非表示になります。かなり基本的なもの。
これらのメガ ドロップダウンのいくつかには、select 要素を含むフォームがあります。Firefox では、すべて問題ありません。IE (特に 8 では他のバージョンはテストしていません) では、ドロップ パネルの選択要素にマウスを合わせると、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');
});
}