demo
無名関数を英語にしたら「no name function」だと思っていたが、何だか気持ち悪かったので調べてみると「nameless function」だった。
匿名関数(anonymous function)って呼び方もある。
404 Blog Not Found : jargon - 無名関数(nameless function)?匿名関数(anonymous function)?
どうでもいいけどjsfiddleでRunさせるためのショートカットキーは「Ctrl+Return」。Returnキーってなんだっけと思ったEnterキーのことだった件。
Enterキーとは 「Returnキー」 (Return key) (Enter key): - IT用語辞典バイナリ
無名関数で実行
<p id='nameless'>nameless function</p>
$("#nameless").click(function(){ //実行される console.log("nameless"); });
これはclick()の第一引数に無名関数を記入すればよい。
外部関数の呼び出し
<p id='name'>name function</p>
function name(){ console.log("name"); } $("#name").click(name);
click()の第一引数に関数名だけを渡せばよい。
click()のコールバック関数の中に引数を書くことはできない
<p id='test'>test</p>
function badSample(t){ console.log("badSample:" + t); } $("#test").click(badSample(100));
関数を外部に書いたとき、引数を渡すときを考える。素直に引数を書くと、クリックしていないのに読み込み時に「100」が表示された。
click()のコールバック関数に引数を渡す方法
bindを使う
<p id='bind'>bind</p>
function bindSample(event){ //100 console.log(event.data.num); } $("#bind").bind("click",{num : 100},bindSample);
第二引数には渡すデータを連想配列で渡す。これでコールバック先にデータを渡すことができる。
click()の引数を2つにわける
jQuery1.4.3以降だけで使えるみたい。
jQueryのbindについて - PRESSMAN*Tech
<p id='click'>click</p>
function clickSample(event){ //clickSample:100 console.log("clickSample:" + event.data.num); } $("#click").click({num : 100},clickSample);
click(data,fn)の形で書けばイケる。