0

私はjQueryのカスタムメニューに取り組んでおり、学習を進めています。ドロップダウンメニューを開始するまで、これまでのところほとんどの部分で問題はありませんでした。ドロップダウンのdivがリンクと重なって、リンクをクリックできなくなります。コードをテストすると、意味がわかります。どんな助けでも大歓迎です。 これがjsFiddleへのリンクです

これが私のCSSです:

li {
    background-color: #ccc;
    position: relative;
    color: #fff;
    z-index: -2;
    float: left;
}
div.menu-item {
    background-color: #000;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 10px;
    z-index: -1;
}
a.menu-text {
    display: block;
    color: #fff;
    margin: 0;
    padding: 10px;
    padding-bottom: 15px;
}
div.dropdown {
    display: none;
    position: absolute;
}
div.dropdown-item {
    position: relative;
    background-color: #1E4b55;
}
div.dropdown-item a {
    padding: 10px;
    padding-left: 15px;
    display: block;
    white-space: nowrap;
    color: #fff;
}
div.dropdown-left {
    height: 100%;
    width: 10px;
    background-color: #000;
    position: absolute;
    top: 0;
    left: 0;
}

これが私のHTMLです

<div>
    <ul>
        <li>
            <div class="menu-item"></div>
            <a class="menu-text" href="#">text</a>
            <div class="dropdown">
                <div class="dropdown-item"><div class="dropdown-left"></div><a href="#">item 1</a>

                </div>
                <div class="dropdown-item"><a href="#">item 2</a>

                </div>
                <div class="dropdown-item"><a href="#">item 3</a>

                </div>
            </div>
        </li>
        <li>
            <div class="menu-item"></div>
            <a class="menu-text" href="#">texttexttext</a>
        </li>
        <li>
            <div class="menu-item"></div>
            <a class="menu-text" href="#">tetexttexttexttexttexttexttextxt</a>
        </li>
    </ul>
</div>

そして、これが私のjavascriptです:

$(function () {
    $("li").hover(
    function () {
        $(this).find('div.menu-item').stop().animate({
            height: '100%'
        }, {
            duration: 700,
            specialEasing: {
                height: 'easeOutQuint'
            }
        });
        $(this).find('div.dropdown').slideDown();
    },

    function () {
        $(this).find('div.menu-item').stop().animate({
            height: '10px'
        }, 700);
        $(this).find('div.dropdown').stop().slideUp();
    });
    $("div.dropdown-item").hover(
        function(){
            $(this).find('div.dropdown-left').stop().animate({
                width: '100%'
            }, {
                duration: 700,
                specialEasing: {
                    width: 'easeOutQuint'
                }
            });
        },
        function(){
            $(this).find('div.dropdown-left').stop().animate({
                width: '10px'
            }, 500);
        }
    );
});
4

1 に答える 1

3

追加

div.dropdown-item a {
    position: relative;
}

http://jsfiddle.net/Y9knm/2/

于 2013-01-22T12:30:08.370 に答える