Многоуровневое раскрывающееся контекстное меню

Я делаю плагин контекстного меню (правый клик) для jQuery, и он отлично работает для первого уровня. Но мне нужно, чтобы он имел бесконечные уровни. У меня уже есть рекурсия вниз, но я думаю, что это проблема с показом / сокрытием. Пока это мой код: http://jsfiddle.net/H7GqA/4/ (Извините за грязный код, плагин для меня). Элемент второго уровня никогда не появляется, и я не уверен, что делаю неправильно.

Заранее спасибо - Таннер.

1 ответ

Решение

У тебя есть display:none на .submenu элементы, и вы ничего не делаете, чтобы показать их.

Если вы хотите, чтобы они были всегда, добавьте следующее правило

#ContextMenu .submenu {
    display:block;
}

если вы хотите сделать это при наведении на родитель

для современных браузеров

#ContextMenu .item:hover > .submenu {
    display:block;
}

Я вижу, у вас есть этот код

    cm.find(".item:has(.submenu)").hover(function(){
        //$(this).find("ul").css('display', 'block');
        //alert('blabla_1');
        $(this).css('background-color', 'red');
    });

должно сработать (если вы раскомментируете первую строку) и переместите этот код в doMain функция. Потому что там, где у вас есть #ContextMenu элемент еще не существует.. поэтому связывание не происходит..

Другие вопросы по тегам