私は自分の JS スキルを向上させようとしていて、名前空間付きのオブジェクト リテラルとして一連のコードを書き直しました (と思います)。しかし、今は "this" 関連の問題があります。私が理解するのを手伝ってください?
ここに短縮コードがあります。
var MYAPP = {
init: function(){
$(document).on("click",".showLove", MYAPP.showLove);
},
showLove: function(){
var thisId = MYAPP.findId();
$.post(//// do AJAXy stuff using thisId);
},
findId: function(){
var thisClass = $(this).attr('class');
var thisIdPos = thisClass.indexOf("id-")+3;
var thisId = thisClass.substr(thisIdPos, 3);
return thisId;
}
}
だから私はあなたがおそらく問題を見ていると確信しています。findId 関数では $this が定義されておらず、エラーが発生します。以前は、showLove に findId ロジックがあり、すべてが機能していました。いくつかの異なる場所で使用されていたため、findId ロジックを独自のメソッドに移動しました。
だから私はこれを聞いてみましょう - > $(this) が 'showLove' の正しい要素を指しているのはなぜですか? 'findId' は 'showLove' 内から呼び出されるため、$(this) を含む同じ変数にアクセスするべきではありませんか? 初めての「自分=これ」のシチュエーション?
これが基本的な質問であることはわかっていますが、誰かが私を理解するのを手伝ってくれるなら、私は..ええと..「愛を示す」.