同じクラス名を持つdiv
の非表示にするコードスニペットがあります。同じクラス名とイベントを持つ複数のdivがactionLinks
クラスの外でトリガーされる必要があります。しかし、私は少しこれを行う方法を混同しています。私を導くことができますか?それが含まれているかどうかを複数のdivの同じクラスを持つ要素の外側をクリックしたときに特定のdivを非表示にする方法
$(document).on("click", ".actionLinks", function() {
$('.mainAction').hide();
$(this).prev('.mainAction').show();
});
$(document).not(".actionLinks").on("click", function() {
$('.mainAction').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link one</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link two</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link three</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link four</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link five</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link six</a>
</div>
<div class="mainAction" style="display: none;">
<a href="#">Action 1</a>
<a href="#">Action 2</a>
<a href="#">Action 3</a>
</div>
<div class="actionLinks">
<a href="#">Link seven</a>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
が動作していないスニペット。 –
これはOPの問題を解決しますが、このセレクタは本当に悪い習慣です。これは非常に高価なセレクターです。 div.mainActionが可視でない場合でも、クリックイベントはキャッチされます。 –
私はplunkerの例を作成しました。https://plnkr.co/edit/vzFFdyJXReKeZ9mL6BPK?p=preview –