1

.hide()がjquery uiアコーディオン内の要素で機能しないのはなぜですか?への呼び出しの前は機能しますが$("#accordion").accordion()、後は​​機能しません。.show()メソッドは、前後で正常に機能します。.toggle()メソッドは半分しか機能しません(show部分のみ)。

<html>
    <head>
        <link href="jquery-ui-1.9.1.custom/css/ui-lightness/jquery-ui-1.9.1.custom.css" rel="stylesheet">
        <script src="jquery-ui-1.9.1.custom/js/jquery-1.8.2.js"></script>
        <script src="jquery-ui-1.9.1.custom/js/jquery-ui-1.9.1.custom.js"></script>
        <script>
            $(function()
            {
                //$("#inside").hide("fade"); /* <-- this does work */
                $("#accordion").accordion();
                $("#inside").hide("fade"); /* <-- but this doesn't */
            });
        </script>
    </head>
    <body>
        <div id="accordion">
            <h3>Page 1</h3>
            <div id="page1">Blah</div>
            <h3>Page 2</h3>
            <div id="page2">
                <div id="inside">Blah too</div>
            </div>
        </div>
    </body>
</html>

別の方法で解決する方法だけでなく、さらに重要なことに、なぜこのように機能しないのかを説明してください。

4

2 に答える 2

2

パラメータhide()なしの呼び出しが実際に機能するという事実に基づいて(こちらを参照)、フェードの実装方法に関係していると言えます。フェード効果は、div が表示されているときに使用すると機能するため、要素が表示されているという事実に依存している可能性があります(こちらを参照)。"fade"hide("fade")

于 2012-11-10T00:15:45.280 に答える
0

これは、 が をaccordion使用したために発生しhideます。パネルを初めて表示すると、以前に非表示になっていたコンテンツも表示されるため、コンテンツを非表示にするときにパネルが開いていない場合は、そのパネルを最初に選択したときに表示されます。何が機能していないかについての正しい説明を提供するため、juan.facorro の説明を参照してください。

#inside最初に含むパネルを表示し、それを非表示にしてから、代わりに最初のパネルを表示することによる回避策の開始の可能性を次に示します: http://jsfiddle.net/cjc343/KuJJm/2/

于 2012-11-10T00:14:32.770 に答える