[jQuery]関数の引数にセレクタ情報を突っ込む方法

簡単な話

どういうアレか

関数を作る際、引数を使用すればイベントごとに内容を調整することができる。動作だけを共通項にできるから個別に関数を作らなくて良くなる。

function example(e){
    alert(e);
}
$('button.a').on('click',function(){ example('ああああ'); })
//alert('ああああ');
$('button.b').on('click',function(){ example('いいいい'); })
//alert('ああああ');

引数は複数設定できる。

ちなみに関数を作るときに引数を宣言する際、中身は何でも良い。変数だと思えばいい。作例で(e)とかで書かれてることが多いけど、別に「e」じゃなきゃいけないってことじゃない。

function example(first,second){
    alert(first + second);
}
$('button.a').on('click',function(){ example('ああああ','いいいい'); })
//alert('ああああいいいい');

セレクタ情報を関数にぶち込む

こんなのがあったとする。

$('select').change(function(){
    alert($(this).val());
})

これを関数化するとこうなる。

function example(e){
    alert($(e).val());
}
$('select').change(function(){
    example(this);
})

thisを引数に突っ込む。読めばそうだよなで済む内容。とはいえ、変数とか文字列を突っ込んでばっかりだと、いざこの場面になったときによく分かんなくなる。なった。

コメント

タイトルとURLをコピーしました