jQueryでユーザーが外部をクリックした時にDIVを非表示にする方法

2024-04-02

jQueryを使ってユーザーが外部をクリックした時にDIVを非表示にする方法

手順

  1. HTMLファイルに以下のコードを追加します。
<div id="my-div">
  これは非表示にしたいDIVです。
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
$(document).ready(function() {
  // "my-div" 以外をクリックした時に "my-div" を非表示にする
  $(document).click(function(event) {
    if (!$(event.target).closest('#my-div').length) {
      $('#my-div').hide();
    }
  });
});
</script>

コード解説

  • $(document).ready(function() { ... });: DOMContentLoadedイベントが発生した時に実行されるコードを記述します。
  • event.target: クリックされた要素を取得します。
  • $(event.target).closest('#my-div').length: クリックされた要素が #my-div 以下の要素かどうかを判定します。
  • $('#my-div').hide();: #my-div を非表示にします。

補足

  • 上記のコードは、#my-div 以外をクリックした時に #my-div を非表示にする例です。
  • クリックした要素以外をクリックした時に別の要素を非表示にする場合、#my-div を他の要素セレクタに置き換えてください。
  • hide() メソッド以外にも、fadeOut() メソッドなどを使って、非表示にする際のアニメーションを設定できます。



<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>jQueryでDIVを非表示にする</title>
</head>
<body>
  <div id="my-div">
    これは非表示にしたいDIVです。
  </div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

  <script>
  $(document).ready(function() {
    // "my-div" 以外をクリックした時に "my-div" を非表示にする
    $(document).click(function(event) {
      if (!$(event.target).closest('#my-div').length) {
        $('#my-div').hide();
      }
    });
  });
  </script>
</body>
</html>

説明

実行方法

  1. 上記のコードをHTMLファイルに保存します。
  2. ブラウザでHTMLファイルを開きます。
  3. "my-div" をクリックします。



jQueryでDIVを非表示にする他の方法

toggle() メソッドは、要素の表示状態を切り替えます。要素が表示されている場合は非表示になり、非表示の場合は表示されます。

<div id="my-div">
  これは非表示にしたいDIVです。
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
$(document).ready(function() {
  // "my-div" をクリックした時に "my-div" の表示状態を切り替える
  $('#my-div').click(function() {
    $(this).toggle();
  });
});
</script>

slideToggle() メソッドは、要素をスライドさせて表示/非表示を切り替えます。

<div id="my-div">
  これは非表示にしたいDIVです。
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
$(document).ready(function() {
  // "my-div" をクリックした時に "my-div" をスライドさせて表示/非表示を切り替える
  $('#my-div').click(function() {
    $(this).slideToggle();
  });
});
</script>

fadeOut() メソッドは、要素をフェードアウトさせて非表示にします。

<div id="my-div">
  これは非表示にしたいDIVです。
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
$(document).ready(function() {
  // "my-div" をクリックした時に "my-div" をフェードアウトさせて非表示にする
  $('#my-div').click(function() {
    $(this).fadeOut();
  });
});
</script>

これらの方法は、それぞれ異なるアニメーション効果を伴います。使用したい方法を選択してください。

上記以外にも、以下のような方法でDIVを非表示にすることができます。

  • CSSの display プロパティを none に設定する
  • JavaScriptの hidden プロパティを true に設定する

これらの方法は、jQueryを使用しない方法です。


jquery html hide


innerHTML、createTextNode、insertAdjacentText... 徹底比較!JavaScriptでdiv要素にテキストを追加する方法

JavaScriptでdiv要素にテキストを追加するには、いくつかの方法があります。方法innerHTMLプロパティを使用するこれは最も簡単な方法です。innerHTMLプロパティは、要素の内容を取得または設定するために使用されます。document...


【今すぐ使える】jQueryでフォーム送信をデフォルトで阻止し、エラー処理を行う

この方法は、最もシンプルで分かりやすい方法です。この例では、#myForm というIDを持つフォームに対して、submitイベントハンドラを設定しています。このハンドラ内で event. preventDefault() を呼び出すことで、フォームのデフォルト送信を阻止します。...


その他の方法:this.options[this.selectedIndex] と $(this).prop('value') を使う

このチュートリアルでは、jQuery を使って select 要素の change イベントを処理し、選択されたオプションの値を取得する方法を解説します。必要なものjQuery ライブラリをプロジェクトにインストールしていることHTML ドキュメント内に select 要素があること...


Google Chrome DevTools で jQuery のソースマップを有効にする方法

この問題は、以下の 2 つの原因が考えられます。ファイルの欠損: jquery-1.10. 2.min. map ファイルがプロジェクトに存在していない、または誤って削除された可能性があります。以下の方法で問題を解決できます。ファイルの追加...


【初心者向け】Vue CLI 3 で htmlWebpackPlugin.options.title を使って簡単にタイトルを変更する方法

Vue CLI 3 で作成したプロジェクトでは、htmlWebpackPlugin. options. title オプションを使用して Web ページのタイトルを設定できます。このオプションは、vue. config. js ファイルまたは package...