勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

jQueryで後から追加された要素にイベントを設定

   2024/02/22  jQuery

jQueryで.html()等を使って追加した要素に対してイベントを設定したかった。今までは関数を作ってonclickとかでその関数を動かしていたけど、何とかしてjQueryで対応したかった。以下に方法をメモ。

 

ソース

<a href="javascript:void(0)" id="link">link</a>
<div id="area"></div>

<script>
$('#link').click(function(){
    $('#area').html('<a href="javascript:void(0)" id="link2">link2</a>');
});

/* これは動かない
$('#link2').click(function(){
    alert(0);
});
*/

/* これも動かない
$('#link2').on('click', function(){
    alert(0);
});
*/

/* これなら動く */
$('#area').on('click', '#link2', function(){
    alert(0);
});
</script>

 

on()を使ってセレクタを指定する

on()の第二引数にセレクタを指定する事で後から追加された要素に対してもイベントを設定できるみたい。click()やon()で第二引数を指定しないと動かなかった。

 

リファレンス

http://js.studio-kingdom.com/jquery/events/on

 - jQuery

  関連記事

amazon等のECサイトによくにあるアイテムの満足度を星マークで送信・表示する方法
amazon等のECサイトによくにあるアイテムの満足度を星マークで送信・表示する方法

amazon等のECサイトによくにあるアイテムの満足度を星マークかつ5段階で送信 ...

jQueryにて特定のIDが存在するかチェックし分岐処理する方法
jQueryにて特定のIDが存在するかチェックし分岐処理する方法

jQueryにて特定のIDが存在するかチェックし分岐処理したいというケースがあっ ...

Jcropを使ってブラウザ上で画像を範囲指定して切り抜き(トリミング)
Jcropを使ってブラウザ上で画像を範囲指定して切り抜き(トリミング)

やりたかった事は、画像をアップロードして必要な部分のみを範囲指定してもらい、指定 ...

タブアンダー広告をjQueryで再現する方法
タブアンダー広告をjQueryで再現する方法

サイト内のリンクをクリックすると、新しいタブもしくはウィンドウで開く広告をちょい ...

「jQuery.browser is undefined」エラーの対応方法
「jQuery.browser is undefined」エラーの対応方法

jQueryのプラグインを使っていて1.9以降だと「jQuery.browser ...