LoginSignup
6
4

More than 5 years have passed since last update.

jQueryでイベントデリゲート記述のメモ

Last updated at Posted at 2015-02-18

イベントを複数もつ要素に対して、イベントデリゲートを記述するときに書き方忘れがちなのでメモ。

html
<ul>
<li>TEST1<li>
<li>TEST2<li>
<li>TEST3<li>
</ul>

イベント単体バージョン

javascript
$('ul').on('click', 'li', function() {
  // click時のイベントを記述
  console.log($(this).text());  // li実体
});

イベント複数バージョン

javascript
$('ul').on({
  'mouseenter': function() {
    // mouseenter時のイベントを記述
  },
  'mouseleave': function() {
    // mouseleave時のイベントを記述
  }
}, 'li');

jQuery1.7以上であれば上記記述で良いけど、それ以下のバージョンでは直接イベント定義の時には、bind()で、デリゲートしたければdelegate()で定義。
ちょっと記述方法が違う。

delegate()での実装(一応)

javascript
$('ul').delegate('li', 'click', function(){
  // click時のイベントを記述
});
6
4
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
6
4