最初のレベルのメニュー エントリが li 要素で、2 番目のレベルが独自の li 要素を持つ ul ブロックである単純なメニューを作成しようとしています。本当に明るいものはありません。CSS が含まれていますdisplay: none
すべてのサブメニューと私の (楽観的な) アイデアは、SUBmenu (ul 要素) で mouseout が発生したときにそれらを非表示にするよりも、最初のレベルのエントリで mouseover が発生したときに適切な ul 要素を表示することでした。何が起こったのか理解するのに問題があります。Firefox ではすべて問題なく、アクション シーケンス: 最初のレベルのメニューに入る - サブメニューに入る - サブメニューから出る は、適切なイベント シーケンスがトリガーされることを示しています: menuOn subMenuOn subMenuOff menuOff。IE で同じイベント シーケンスで subMenuOff が subMenuOn の後に突然トリガーされる理由がわかりません。その結果、サブメニューがすぐに消えます。サブメニューを無効にすると同時に、カップル (subMenuOn subMenuOff) がトリガーされたようなものです。mouseover または mouseenter を使用しても変更はありません。ホバーを使用しても状況は変わりません。何が起こったのか少し考えていますか?
$(document).ready(
function () {
enableMenu();
}
);
var flagOnSubMenu = false;
function enableMenu() {
$('li.menu').bind('mouseenter', menuOn);
$('li.menu').bind('mouseleave', menuOff);
$('ul.sottomenu').bind('mouseenter', subMenuOn);
$('ul.sottomenu').bind('mouseleave', subMenuOff);
}
function menuOn() {
scrivi('menuOn');
if (flagOnSubMenu) {
scrivi('noAction');
return;
}
var subMenuId;
$('ul.sottomenu').hide();
subMenuId = $(this).find("ul").attr('id');
$('#' + subMenuId).show();
}
function menuOff() {
scrivi('menuOff<br>');
return;
}
function subMenuOn() {
scrivi('subMenuOn');
flagOnSubMenu = true;
}
function subMenuOff() {
scrivi('subMenuOff');
flagOnSubMenu = false;
$(this).hide();
}
function scrivi(arg) {
$('#debug').html($('#debug').html() + ' ' + arg);
}