33
36

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 5 years have passed since last update.

後から追加した要素にもイベントを設定させる

Last updated at Posted at 2017-06-06

以前jQueryで後から追加した要素でもイベントを発火させるために.live()という機能を使用していましたが、1.7で非推奨になり.on()で代用できるということで.live()同様の使い方で使用していましたが、今まで使用方法を間違って覚えていました。

旧 live

$(selector).live("click", function () {
    // 処理
});

勘違い on

$(selector).on("click", function () {
    // 処理
});

これだとselectorにイベントは設定できるが後から追加された要素ではselectorが一致していてもイベントが発火しない。

正解 on

$(document).on("click", selector, function () {
    // 処理
});

追記:documentだと全ての要素をクリックされたときに評価されるらしいので、可能てあればリフレッシュされない要素のなかで範囲を狭めた方がよさそうです。

33
36
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
33
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?