jQuery SlideToggle 效果 : Slide One List Only & Unworking Links

标签 jquery hyperlink expand

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

  1. 我无法让列表仅扩展一个列表(一个或两个,而不是一个和两个)。
  2. ~已修复~我完全不知道为什么链接不起作用。~已修复~

这是 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;
}

最佳答案

您的链接不起作用,因为您已对所有链接应用了 PreventDefault:

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

我已从 h1 标记周围删除了 a 标记。要让 Accordion 工作,你可以这样做:

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

关于jQuery SlideToggle 效果 : Slide One List Only & Unworking Links,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214201/

相关文章:

WPF DataBound TreeView 展开/折叠

ios - 使用 Swift 3 阅读更多/更少

javascript - 如何路由 Node.js 单页应用程序?

javascript - 以数组形式检索选择器类的数据属性

javascript - 如何将键从对象推送到数组?

c# - 从 web 方法返回的 JSON 或 HTML

javascript - Javascript 警报中的链接

Jquery Colorbox 链接?

ruby - Rails3 和自动 nofollow 链接

java - 具有可扩展空父级的 JTree