0
1

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のonメソッドについて

Posted at

jqueryのイベント紐づけのonについて書いていきます。

###基本的な使い方


$('button').on('click',function(){
    alert('a');
})

###データを渡すこともできる


var hoge = 'a'
$('button').on('click',{hoge:hoge},function(e){
    alert(e.data.hoge);
})

第二引数にjsonを指定するとeで値を渡せます。
これを知るまでグローバルに変数を置いてその値を使うという原始的なことをしていたから、グローバル汚染が大変だった。

###複数のイベントを一度に指定
同じ関数を使うなら半角スペース区切ると指定できます。


$('button').on('click touchstart',function(){
    alert('a');
})

別の関数を使うならjsonで指定


$('button').on({
    click :function(){
       alert('click'); 
    },
    touchstart :function(){
        alert('touchstart');
    }
})

###後から追加された要素も対象にする


$('.btn').on('click',function(){
    alert('a');
})
$('button').addClass('btn');

.btnはイベントが登録された後に追加されてるので↑ではイベントが発火しません。

後から追加された要素も対象にするには↓


$(document).on('click','.btn',function(){
    alert('a');
})
$('button').addClass('btn');

これはdocumentの中にある.btnにイベントを紐づけています。
$('body')のようにすれば範囲を狭めることができます。

###trigger()で強制発火


$('button').on('click',function(){
    alert('a');
});
$('button').trigger('click');

.trigger('click')を使えば、クリックしてないのにclickイベントが発火します。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?