jQueryで追加した要素にクリックイベントを設定する方法

この記事は約2分で読めます。

jQueryで後から追加した要素は、普通にクリックイベントを設定しても動かない。
そんな時の解決方法のご紹介です。

後から追加した要素にクリックイベントを発火させる方法

例として下のHTMLをjQueryで追加します。

jQueryで追加したHTML

<div class="demo"></div>

この追加したHTMLにクリックイベントを発生させる方法はこちらです。

jQuery

$(document).on("click", ".demo", function() {
  // 「.demo」が押された時の処理
});

jQueryの説明です。
最初の「$(document)」は、ページの全要素を指定している。
全要素にクリックイベントを指定して、「全要素」の中の「.demo」が押されたらをさらに指定すると、後から追加した要素にもクリックイベントを発火できる。
この指定方法だと、HTMLが数千行も書いてあるページだと処理が若干遅くなります。
処理を早くするには「$(document)」ではなく、もっと範囲の小さい親要素または先祖要素を指定する。

処理の早い追加した要素にクリックイベントを発火させる方法

下のHTML「.demo」にjQueryで「p」タグを追加しています。

jQueryで「.demo p」を追加したHTML

<div class="demo">
  <p></p>
</div>

jQuery

$(".demo").on("click", "p", function() {
  // 「.demo p」が押された時の処理
});
javascriptjQuery
エンデ・バタロー

フロントエンドエンジニアとして10年目のキャリアを積んでおり、figma、Illustrator、Photoshop、WordPress、HTML、今は亡きXHTML、CSS(scss)、JavaScript(jQuery)、PHPなど使って日々仕事をしています。

仕事で検索する手間を省くためフロントエンド技術に関するブログを書いています。

制作のご依頼やお問い合わせはこちらから連絡お願いします。

エンデ・バタローをフォローする
シェアする
初めてのブログ

コメント

タイトルとURLをコピーしました