これはちょっとファンキーです。しかし、以下のコードスニペットを見てください:
$('.classname').bind('click', somefunction);
function somefunction() {
console.log($(this)); // **displays[<div>,context<div>]**
}
そして、私が上記を微調整すると:
$('.classname').bind('click', function(){ somefunction(); });
function somefunction(){
console.log($(this)); // **displays [Window]**
}
関数がどのようにコールバックされているかに応じて、「this」が2つの異なる値を想定する理由はよくわかりません。問題は、これがコンテキストであり、関数が次のように呼び出される必要があるということです。
function(event){ somefunction(event); }
イベントが必要だから。しかし、ここで何が起こっているのかよくわかりません。
リード、人はいますか?