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

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

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


person Tanner Ottinger    schedule 04.05.2011    source источник


Ответы (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 еще не существует.. поэтому привязка не происходит..

person Gabriele Petrioli    schedule 04.05.2011
comment
Спасибо! Еще нужно поработать над позиционированием, но оно показывает подменю при наведении! - person Tanner Ottinger; 04.05.2011