2014年12月11日木曜日

要素全体のclickイベントで、クリックした要素の種類で処理をわける

たとえば、モーダルウィンドウなんかを表示して、
「[閉じる]ボタンはあるけど、めんどくさいから画面全体どこクリックしても閉じたいよね。でも、リンクがあるときは消えちゃ困るよね。」

そんなときに、クリックした箇所がだった時だけ閉じない。みたいにする方法

たとえば下記のようなコードがあったとします。

[HTML]


[JS]
$(‘.modal’).click(function(){
  $(this).fadeOut();
});
この場合、「hoge」部分をクリックしても消えちゃう。

なので、JSを下記のように変えてやると回避できます。
[JS]
$(‘.modal’).click(function(e){
  if( !$(e.target).is(‘video’) ){
    $(this).fadeOut();
});
isじゃなくても、hasClassなどでも使えますね

[参考]
http://qiita.com/ituki_b/items/7fc1402df47baf332552

0 件のコメント:

コメントを投稿