すべての li .subnav 要素に影響を与えています。子要素のみにアクセスするにはどうすればよいですか?
$("#left_content").on('click', '.left_navigation ul li', function () {
$(".left_navigation ul li .sub_nav").slideToggle("slow");
});
すべての li .subnav 要素に影響を与えています。子要素のみにアクセスするにはどうすればよいですか?
$("#left_content").on('click', '.left_navigation ul li', function () {
$(".left_navigation ul li .sub_nav").slideToggle("slow");
});
マークアップを見ないと正確な答えを出すのは難しいですがthis
、関連する を切り替えるために使用する必要があるようです.sub_nav
:
$(this).find('.sub_nav').slideToggle('slow');
this
click
イベントをトリガーした DOM ノードを表し、.find('.sub_nav')
そのノードの子孫をクラスで検索しますsub_nav
これを試して:
$("#left_content").on('click', '.left_navigation ul li', function () {
$(this).children('.sub_nav').slideToggle("slow");
});
.children()メソッドは.find()とは異なり、.children()は DOM ツリーを 1 レベル下に移動するだけですが、.find() は複数のレベルを下に移動して子孫要素 (孫など) も選択できます。
$('.left_navigation ul li').click( function () {
$(this).find(".sub_nav").slideToggle("slow");
});
$(".left_navigation ul li > .sub_nav").slideToggle("slow");