2011-08-04 9 views
3

私は次のような機能を備えたいと思います:ユーザーがリンクをクリックして拡大すると、崩壊。私はこの機能がアコーディオンプラグインに組み込まれていることを知っていますが、別のライブラリ(jQuery UI)を追加することを避けようとしています。jQueryアコーディオン - 別のアコーディオンペインを開いて別のアコーディオンペインを開く方法

編集:ここで私が今持っているコードは(:http://jsfiddle.net/s2Jfs/2/ここではjsFiddle上で):ある

$('.accordion-toggler').addClass('toggle-plus'); 

    $('.accordion-toggler').click(function() { 
     $this = $(this); 
     if($this.hasClass('toggle-plus')) { 
      $this.removeClass('toggle-plus').addClass('toggle-minus'); 
     } else { 
      $this.removeClass('toggle-minus').addClass('toggle-plus'); 
     } 
     $this.next('.mod-content').slideToggle(); 
    }); 

「モッズ・コンテンツ」クラスが崩壊/拡大すべきコンテンツに取り付けられています。今、1つのアイテムを展開し、開いたままにしてから別のアイテムをクリックすると、複数の展開された領域があります。アクティブなもの以外の他のリンクを崩壊させるにはどうすればよいですか?

+0

http://jsfiddle.netまたはデモサイトを提供できますか? –

+0

Javascript変数 '$ this'の先頭に' $ '記号を付ける必要はありません。代わりに単に 'this'を使うことができます。 – 65Fbef05

+0

この行を一番上に移動し、nextの代わりに兄弟を使用して、他のすべてのものをターゲットにすることができます: '$ this.siblings( '。mod-content')。slideToggle();'次に、現在のものを表示します。あなたはいくつかのHTMLを投稿できますか? – Mrchief

答えて

2

あなたはこのようにしなければならないほど複雑になっています。他の人がスライドバックしている間だけスライドさせたい場合は、次のコードを使用してください。

$('.accordion-toggler').click(function() { 
    var targetElement = $(this).next('.mod-content'); 
    targetElement.slideToggle(); 
    targetElement.siblings('.mod-content').slideUp(); 
}); 
+0

ありがとう!これは私が尋ねたことをするために働く。しかし、私はまだ必要ならばすべてを崩壊させるオプションを持っていたい(長いリストがあるかもしれない)。 –

+0

私はあなたがしたいことをしなければならないいくつかの改訂を行いました。 – 65Fbef05

+0

あなたの変更を追加しました:http://jsfiddle.net/ellenchristine/s2Jfs/4/。ただし、デフォルトの動作ではリストが表示されないため、実際にリンクと対話することはできません。 –

関連する問題