1

私がしばらくの間取り組んできたリスト メニューで 2 つの問題に遭遇しました。

  1. リストを1つだけ展開することはできません(1つと2つではなく、1つまたは2つ)。
  2. ~FIXED~リンクが機能しない理由がまったくわかりません.~FIXED~

ここにJSFiddleがあります - http://jsfiddle.net/yAqQG/1/

どんな助けでも大歓迎です、ありがとう。

HTML

<div class="navigation">
<ul>
<li><h1><a href="#">One</a></h1>
    <ul>
    <li><a href="#">Not Available</a></li>
    <li><a href="#">Not Available</a></li>
    </ul>
</li>
<li><h1><a href="#">Two</a></h1>
    <ul>
    <li><a href="#">Not Available</a></li>
    <li><a href="#">Not Available</a></li>
    </ul>
</li>
</ul>
</div>

JQuery

jQuery(document).ready(function () {

    var subMenu = jQuery(".navigation ul li ul li");
    var linkClick = jQuery(".navigation ul li").filter(":has(ul)");

    subMenu.hide();

    linkClick.click(function (e) {
        e.preventDefault();
        $(this).find('ul li').slideToggle("fast");
    });
});

CSS

body {
    background : #000000;
}

/* Title Settings */
.navigation ul li h1 {
    background : none;
    float : right;
    font-size : 28px;
    font-weight : 100;
    margin : 0;
    margin-bottom : 3px;
    padding : 0;
}
/* Before and After Styling */
.navigation a {
    color : #ffffff;
    border-right : 3px solid #ffffff;
    display : table;
    padding : 6px;
    transition: .25s ease-in-out;
    -moz-transition: .25s ease-in-out;
    -webkit-transition: .25s ease-in-out;
    text-decoration : none;
}
.navigation a:hover {
    border-right : 3px solid #f43058;
    color : #f43058;
}
/* Fixed (Top Right) Positioning */
.navigation {
    font-family : 'Open Sans Condensed', sans-serif;
    font-weight : 100;
    margin : 12px;
    position : fixed;
    right : 0;
    top : 0;
}
.navigation ul {
    font-size : 20px;
    margin : 0;
    padding : 0;
    text-align : right;
}
.navigation ul li {
    clear : right;
    float : right;
    list-style-type : none;
}
/* Second Level Settings */
.navigation ul li:hover ul {
    display : block;
}
.navigation ul li ul li {
    font-size : 18px;
    margin-bottom : 3px;
}
4

1 に答える 1

3

preventDefault をすべてのリンクに適用したため、リンクは機能しません。

linkClick.click(function (e) {
    e.preventDefault();
});

a代わりに、h1 タグの周囲からタグを削除しました。アコーディオンを機能させるには、次のようにします。

http://jsfiddle.net/W8H6W/3/

jQuery(document).ready(function () {
    jQuery('h1').click(function () {
        $(this).closest('li').siblings().find('ul').slideUp();
        $(this).siblings('ul').slideToggle("fast");
    });
});
于 2013-03-05T01:33:53.643 に答える