-2

クリックしたときにのみ表示されるメニュー項目を含むメニューがあります。それらを再度非表示にするには、再度クリックする必要があります。これで問題ありませんが、別のメニュー項目がクリックされたときに、他の表示されているメニュー項目を非表示にする必要もあります。

私は現在使用しています:

$(this).parent().find("element").toggle();

したがって、メニュー項目 2 が表示されているときにメニュー項目 1 がクリックされた場合、メニュー項目 2 を再び非表示にし、メニュー項目 1 を表示する必要があります。どうやってするか?

4

2 に答える 2

0

これはどう:

$('.submenu').hide();
$('.menuitem').click(function() {
  var thissubmenu = $(this).find('.submenu');   
  $('.submenu').not(thissubmenu).hide();
  $(this).find(".submenu").toggle();
});
​

私はJSFiddleを作成しました。これは、あなたが探しているものだと思います。

しかし、誰かがもっとエレガントな方法を知っているかもしれません。

于 2012-08-19T10:32:57.927 に答える
0

クリックで要素を非表示/表示できます:

$('.menu-item').on('click', function() {
    var $this = $(this);
    $this.show();
    $this.parent().children('.menu-item').not($this).hide();
});

ネストに応じて、子の代わりに find を使用します。

于 2012-08-19T09:05:52.643 に答える