打破其父级的下拉内容

时间:2013-06-19 12:26:55

标签: jquery

如果你看看下面的jsfiddle,它有3个下拉菜单(DROP1,DROP2,DROP3)。第一个的内容粘在左边缘,然而第二个和第三个的内容从它们各自的按钮按钮开始。

jsfiddle:http://jsfiddle.net/6a3eZ/73/

问题是:如何制作第二个和第三个下拉列表'内容也粘在左边缘(没有对其应用不同的样式,带有负边距)。

非常感谢。

jQuery(document).ready(function ($) {
    jQuery('.menu ul').slideUp(0);

    jQuery('.menu li.sub').click(function () {
        var target = jQuery(this).children('a');
        if(target.hasClass('menu-expanded')){
            target.removeClass('menu-expanded');
        }else{
            jQuery('.menu-item > a').removeClass('menu-expanded');
            target.addClass('menu-expanded');
        }
        jQuery(this).find('ul:first')
                    .slideToggle(400)
                    .end()
                    .siblings('li')
                    .find('ul')
                    .slideUp(400);
    });
});

1 个答案:

答案 0 :(得分:0)

New Fiddle

通过将position: absoluteleft: 0添加到子菜单,它会粘在左侧。

ul.sub-menu {
    position: absolute;
    left: 0;
    ...
}

这种情况发生了,因为它相对于具有fixedrelativeabsolute定位的下一个父容器。这就是#menu

问题是,子菜单被取出正常流程,底部的三个菜单项重叠。

相关问题