javascript - jQuery 子菜单位置错误

标签 javascript jquery html css

我正在尝试创建菜单,该菜单在单击父元素时打开,并在 mouseleave 时从刚才打开的菜单中关闭。它应该从左到右工作

这里是

    <ul class="menuFirst">
        <li><img src="img/ico1.png"></li>
            <ul class="">
                <li><img src="img/ico2.png" alt="submoduł1"></li>
                <li><img src="img/ico2.png" alt="submoduł2"></li>
                <li><img src="img/ico2.png" alt="submoduł3"></li>
            </ul>
        <li><img src="img/ico1.png"></li>
            <ul class="menuSecond">
                <li><img src="img/ico2.png" alt="submoduł1"></li>
                <li><img src="img/ico2.png" alt="submoduł2"></li>
                <li><img src="img/ico2.png" alt="submoduł3"></li>
            </ul>
        <li><img src="img/ico1.png"></li>
            <ul class="menuSecond">
                <li><img src="img/ico2.png" alt="submoduł1"></li>
                <li><img src="img/ico2.png" alt="submoduł2"></li>
                <li><img src="img/ico2.png" alt="submoduł3"></li>
            </ul>
    </ul>

这是CSS

ul.menuFirst{
    list-style-type: none;
border-top: #AAA solid 3px;
border-right: #AAA solid 3px;
border-bottom: #AAA solid 2px;
position: absolute;
left: 0px;
top: 70px;}
    ul.menuFirst li{
    background: #DDD;
    border-bottom: #AAA solid 1px;
}
ul.menuFirst li img{
margin:5px;
}
ul.menuFirst ul{
display: none;
}
    ul.menuFirst ul.menuSecond {
list-style: none;
display: table;
position: absolute;
left: 30px;
    }
    ul.menuFirst ul.menuSecond li{
display: table-cell;
    }

这里是 jQuery

<script>
$(document).ready(function(){
    $("ul.menuFirst li").click(function(){
        $(this).next().toggle();            
        var ypos= $(this).next().position();
        alert(ypos.top);
        $(this).next().css('top','-=38');

        $('ul.menuFirst ul.menuSecond').one('mouseleave',function(){
        $(this).css('top', '+=38').toggle();
    });
    });
});

它适用于第一个元素,但它有很多错误。当我尝试添加 .animate() 时,它只是不起作用。所以我决定退后一步,解决这个问题,但我不知道该怎么做。它应该看起来像这样: Finished menu

最佳答案

您的 HTML 不正确,请使用此

<ul class="menuFirst">
    <li><img src="img/ico1.png">
        <ul class="">
            <li><img src="img/ico2.png" alt="submodul1"></li>
            <li><img src="img/ico2.png" alt="submodul2"></li>
            <li><img src="img/ico2.png" alt="submodul3"></li>
        </ul>
    </li>
    <li><img src="img/ico1.png">
        <ul class="menuSecond">
            <li><img src="img/ico2.png" alt="submodul1"></li>
            <li><img src="img/ico2.png" alt="submodul2"></li>
            <li><img src="img/ico2.png" alt="submodul3"></li>
    </ul>
        </li>
    <li><img src="img/ico1.png">
        <ul class="menuSecond">
            <li><img src="img/ico2.png" alt="submodul1"></li>
            <li><img src="img/ico2.png" alt="submodul2"></li>
            <li><img src="img/ico2.png" alt="submodul3"></li>
        </ul>
    </li>
</ul>

关于javascript - jQuery 子菜单位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202524/

相关文章:

javascript - 调整浏览器大小时,如何使用 jQuery 重新加载 'srcset' 图像?

javascript - WebSocket Javascript 客户端未从服务器接收消息

javascript - 是否可以跨域使用 XMLHttpRequest

c# - Json 返回表单 Controller 不工作

html - 我无法设置表格列的宽度

javascript - 在每个函数中的某些结果之后插入元素

javascript - 单击按钮即可休眠一段时间

javascript - 延迟加载 Bootstrap 轮播而不更改 img src 属性

javascript - 将所有元素值放在一个数组中

html - 更改固定侧边栏的位置