0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【jQuery】追加した要素にイベント処理を設定することに失敗した

Posted at

jQueryを使ってページに要素を追加し、その要素にイベント処理を設定しようとしたところ、失敗しました。
かなり初歩的なミスでした。

まず、こんな感じでボタンを用意します。

<body>
    <button id="first">ボタンを追加する</button>
</body>

ボタンを押すとボタンを追加するようにします。
追加したボタンを押すと、メッセージが表示されるようにします。

$(function(){

    $('#first').click(function(){
        $('body').append('<button id="second">メッセージを表示する</button>');
    });

    $('#second').click(function(){
        alert('このメッセージは表示されません!');
    });

});

しかし、このような書き方だと、メッセージは表示されません。
追加したボタン(id="second")は、ページ読み込み時に存在していなかったため、イベント処理を設定できなかったようです。

$(function(){
    $('#first').click(function(){
        $('body').append('<button id="second">メッセージを表示する</button>');
    })

    $('body').on('click', '#second', function(){
        alert('このメッセージは表示されます!');
    });
});

このようにonメソッドを使うと、ページ読み込み時に存在しなかった要素にもイベント処理を設定できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?