これは私の問題です。jQuery Tools:アコーディオンセクションを開く/閉じる方法?
jQuery Toolsを使用して完全に機能するアコーディオンを構築しました。非常に扱いやすい。
クライアントが戻ってくると、現在のアコーディオンは元の仕様ではない折りたたみ可能でなければならないと言われています。残念ながら、jQuery Toolsのアコーディオンにはこの機能が組み込まれていないので、私自身のコードで作業しています。
私は近づいてきましたが、何も100%働いていません。私はここに私のコードのJSFiddleを作成しました:http://jsfiddle.net/4ubZs/15/
崩壊コードは正常に動作します。
// Code to collapse accordions
$("#accordion > h2").click(function(){
if (this.className == "current") {
$(this).removeClass("current");
$(this).next("div").slideToggle("slow");
} else {
問題が再開されました。私は2つの異なるソリューションを再開しようとしました。最初のコードブロックがTools APIを使用しようとしています。最近閉じたタブは再オープンしませんが、 "current_tab"を.click()コールの実際のインデックス番号に置き換えても、プログラムでインデックスを取得しようとした場合は機能しません。私は仮定している開口部は、jQueryのツールの機能と競合する場合
var api = $("#accordion").data("tabs");
var current_tab = api.getIndex(this);
api.click(current_tab);
第二のブロックjQueryのツールAPIを回避しようとし、作品は、しかし、私は二重のアニメーションを取得します。
$(this).parent().children("h2").removeClass("current");
$(this).parent().children("div").slideUp("slow");
$(this).toggleClass("current");
$(this).next("div").slideToggle("slow");
誰かが私が間違っていることを指摘できれば、大きな助けになるでしょう。
ありがとうございます!
編集: これ以上考えてみると、「再オープン」コードの最初のブロックは機能しません。私はオープンアコーディオンからクラスを削除しているだけなので、jQuery Toolsに実際にクローズされているとは言えません。だから、jQuery Toolsが知っている限り、それを再び開くためにそれをクリックすると、そのアコーディオンはですでにが開いていて、再び開く必要はありません。私は、jQuery Toolsにアコーディオンが閉じられており、そのコードが機能するように指示する方法を理解する必要があると思います。
のgithubのから直接引っ張りました。 – escproxy
アコーディオンは正しく動作します。それは正しく折りたたまれますが、同じものをクリックして再度開くと、何もしません。上記の私の編集を参照してください。ありがとう! – jrhaberman