0

ユーザーがアコーディオンメニューボタンをクリックすると、通常は機能します。ただし、アニメーションの10回に1回は貼り付けられず、開始時の状態に応じて、展開または折りたたまれた状態に戻ります。他の場所からスクリプトをコピーしましたが、十分に単純なようです。

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代わりに使用してください

2番目のものではそれをクリップしていますか?

最後のものであなたはそれをキャンセルしていますか?


動作するコードは次のとおりです: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 に答える