0

次のjqueryがあります。これは基本的にコンテンツ スライダーであり、id を持つリンクをクリックするとslick-toggle1、一致する content が下にスライドしますslickbox1。などと同じslick-toggle2 --> slickbox2です。

$('a.clickdown').each(function() {
      var $this = $(this);
      var index = $this.attr('id').match(/(\d+)$/, '');
      var number = parseInt(index[1]);
      $this.click(function() {
          $('#slickbox' + number).slideToggle(400);
          $this.toggleClass('opened').blur();
         return false;
     });
}); 

個々のリンクをクリックすると、対応する領域が積み重ねられます。しかし、私が達成したいのは、クリックすると表示されますが、他のものは非slick-toggle2表示になると言うことですslickbox2(そうslickbox1& slickbox3)。

4

4 に答える 4

0

hidable非表示にするすべてのリンクにクラスを追加します。たとえば<a class="clickdown hidable">、クリック機能で次のようにします。$(".hidable").hide();

于 2011-11-23T08:24:07.957 に答える
0

jquery アコーディオンを探していると思います: http://docs.jquery.com/UI/Accordion。この jQuery プラグインは、これを自動的に行います。クリックしたものをスライドして開きます。そして残りを閉じます。

于 2011-11-23T08:24:20.590 に答える
0

これを試してみてください。id が slickbox で始まるすべての要素を検索し、それらを上にスライドさせます。

$('a.clickdown').each(function() {
    var $this = $(this);
    var index = $this.attr('id').match(/(\d+)$/, '');
    var number = parseInt(index[1]);
    $this.click(function() {
        $('[id^=slickbox]').slideUp(); // This does the magic.
        $('#slickbox' + number).stop(true, true).slideToggle(400);
        $this.toggleClass('opened').blur();
        return false;
    });
});
于 2011-11-23T08:24:33.017 に答える
0

#slickboxの親 ( と呼びましょうslick_parent) とslideUpすべての子 divへの呼び出しを追加してから、目的のボックスをスライドさせます。

$this.click(function() {
    $('#slick_parent > div').slideUp();
    $('#slickbox' + number).slideToggle(400);
    $this.toggleClass('opened').blur();
    return false;
});
于 2011-11-23T08:25:49.537 に答える