特定の要素以外をクリックした時に何らかの機能を実行するのは、モーダルやポップアップのウィンドウを閉じたりする時に便利です。jQueryを使うことで簡単に実装できるので備忘録としてのメモです。
クリックイベントでクリックされた要素を取得し条件分岐させる
まずはサンプルのコードです。ターゲットとなる特定の要素にはidもしくはclassを振っておきます。javascriptの方はクリックイベントで「e」というイベントオブジェクトでクリックした要素を取得し、その要素がターゲットとなる要素の中に含まれているかをclosestで判別します。
【HTML】(一部抜粋)
<div class="wrap"> <div id="clickTarget">ターゲット要素 </div> </div>
【javascript】
$(document).on('click',function(e) { if(!$(e.target).closest('#clickTarget').length) { // ターゲット要素の外側をクリックした時の操作 } else { // ターゲット要素をクリックした時の操作 } });
いろいろと使いどころは多いので、重宝しそうですね!ユーザビリティ向上に活用してみてはいかがでしょうか。今回のサンプルはこちらに上げておりますのでご参考に!