0

当用户单击 Accordion Menu 按钮时,它通常会起作用。但是,大约十分之一的动画不会粘住并返回展开或折叠状态,具体取决于它开始的状态。我从其他地方复制了脚本,但它们看起来很简单。

HTML:

<ul id="system-nav">
    <li><div>Umbrella</div>
        <ul>
            <li><a href="../../Admin">Admin</a></li>
            <li><a href="../../Deshboard">Dashboard</a></li>
            <li><a href="../../Daylight">Daylight</a></li>
        </ul>
    </li>
</ul>

就像我说过的,我已经尝试了同一件事的几个不同版本。这些只是从随机位置获取的,我只是稍微编辑了它们。他们都做同样的事情。

$("#system-nav > li > div").click(function(){
if(false == $(this).next().is(':visible')) {
    $('#system-nav ul').slideUp(300);
}

$(this).next().slideToggle(300).delay(250);
});

$('#system-nav ul:eq(0)').hide();

$(document).ready(function() {  
$('#system-nav li div').click(function() {
    $('#system-nav ul').slideUp('slow');    
    $(this).next().slideDown('slow');
});

$("#system-nav ul").hide();

 });

$(document).ready(function(){
$('#system-nav li div').click(function() {
    $(this).next().slideDown('slow');
    return false;
}).next().hide();
});
4

1 回答 1

1

在第一个 JS 示例中使用:visible不是正确的属性。:hidden改为使用

在第二个中,您正在剪辑它?

在最后一个你取消它?


这是一个工作代码:http: //jsfiddle.net/Q9qNw/

$("#system-nav").on("click","div",function(){
    if ($(this).next().is(":hidden")) {
        $(this).next().slideDown("500");
    } else {
        $(this).next().slideUp("500");
    }
});
于 2012-08-30T14:32:08.043 回答