JQuery SlideToggle效果:仅滑动一个列表&不工作的链接

时间:2013-03-05 01:23:13

标签: jquery hyperlink expand

我遇到了一个列表菜单的两个问题,我现在已经使用了一段时间了。

  1. 我不能让列表只扩展一个列表(一个或两个,而不是一个和两个)。
  2. ~FIXED~我完全不知道为什么链接不起作用.~FIXED~
  3. 这是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;
    }
    

1 个答案:

答案 0 :(得分:3)

您的链接不起作用,因为您已将preventDefault应用于所有这些链接:

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

我已经删除了h1标记周围的a标记。为了让手风琴工作,你可以这样做:

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");
    });
});