8
8

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.

【jQuery】onイベントでコールバック関数に引数を渡す方法

Posted at

はじめに

jQueryのonイベントで、無名関数を指定して処理を実行させる書き方は自分でもよくやるのですが、処理が長くなった場合、この書き方ではソースコードが読み辛くなってしまいます。
そのため、処理を関数化して、呼び出す方法を採用しました。
やっていることは簡単なのですが、引数を渡すところで思うようにいきませんでした。。。
今回は、色々とやり方を模索した中で、一番分かりやすく、簡単な方法をご紹介します。

サンプルコード

HTML

<buton class="btn" data-num="1">click</buton>
<buton class="btn" data-num="2">click</buton>
<buton class="btn" data-num="3">click</buton>
<buton class="btn" data-num="4">click</buton>

javascript

<script>
  $(function(){
    //ボタン
    $(".btn").on("click",function(event){
      btnClick(event,this);
    });

    function btnClick(_event,_this){
      //例えば、event処理を取り消すことも可能
      _event.preventDefault();
      //クリックしたボタンを識別することも可能
      console.log($(_this).data('num'));
    }

  });
</script>

この書き方でイベントハンドラやthisを引数として、利用することができます。
onイベント後の無名関数が長くなってしまったと、悩んでいる方はこの方法で解決できるのではないでしょうか。

皆様のお役に立てれば幸いです。

8
8
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
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?